2014-10-18 94 views
0

我試圖獲得ArrayList s的基礎知識,但我無法使lastIndexOf方法正常工作。正如你可以在下面的代碼中看到的,程序運行時應該打印「1」,即數字3的索引,但是打印「-1」(只有在ArrayList中不存在3時纔打印)。我的問題是什麼?當ArrayList存在於ArrayList中時ArrayList方法「lastIndexOf」返回-1

import java.util.ArrayList; 
public class Pile { 
    public static void main(String[] args) 
    { 
     int[] myArray = {1,3,23,4}; 
     ArrayList<Integer> myList = new ArrayList<Integer>(); 
     for (int i=0;i<myArray.length;i++) { 
      myList.add(myArray[0]); 
     } 
     System.out.println(myList.lastIndexOf(3)); 
    } 
} 
+4

請不要在你的問題中加入代碼截圖。將代碼複製並粘貼爲文本更好。 – Eran 2014-10-18 03:48:23

回答

3

你只需要添加的myArray的第一個元素myList

此時應更換

myList.add(myArray[0]); 

與此

myList.add(myArray[i]); 

此外,而不是手動複製的元素,你可以使用Arrays#asList(但你需要改變的myArrayInteger[]類型):

List<Integer> myList = Arrays.asList(myArray); 
+0

哇,我是個白癡。非常感謝! – 2014-10-18 03:48:33

+2

在一個int數組上使用Arrays.asList會導致List ,所以它甚至不會編譯。 – Eran 2014-10-18 03:53:49

2

您只是將數組的第一個元素多次添加到列表中。

myList.add(myArray[0]); 

這就是爲什麼你的列表中不包含3

將其更改爲

myList.add(myArray[i]);