在我對數組和ArrayList的繼續教育中,我試圖通過將ArrayList從一個方法傳遞給另一個方法來實現我的代碼。這裏是我的代碼:在方法之間傳遞ArrayList
public void exampleArrayList() {
ArrayList<String> al = new ArrayList<String>();
al.add("AZ");
al.add("BY");
al.add("CX");
al.add("DW");
al.add("EV");
al.add("FU");
al.add("GT");
display(al);
}
public void display(ArrayList al) {
System.out.println("Index of 'AZ': " + al.indexOf("AZ"));
System.out.println("Index of 'FU': " + al.indexOf("FU"));
System.out.println("Index of 'AA': " + al.indexOf("AA"));
System.out.println("Index of 'CX': " + al.indexOf("CX"));
// for (String row : al)
// System.out.println("Value at Index " + al.indexOf(row) +
// " is " + al.get(al.indexOf(row)));
for(int i = 0; i < al.size(); i++)
System.out.println("Value at Index " + al.indexOf(i) +
" is " + al.get(al.indexOf(i)));
}
在顯示方法適用於兩個語句註釋掉。當前註釋掉的for語句不起作用,因爲row正在查找一個String,但即使數組al是一個字符串,get也會分配一個對象。我是否需要將al投入字符串或其他內容?當我使用創建ArrayList的同一個方法運行for循環時,情況並非如此,我不瞭解它們之間的區別。
第二個for語句沒有被註釋掉導致系統崩潰給我以下運行時錯誤:
java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
我試圖改變i < al.size()
的硬編碼數,它還是沒有,我不知道爲什麼。
原始類型?爲什麼? – bcsb1001
我想你的意思是「價值在指數'我'是'al.get(i)'」? –
準確的板球。只是把自己綁在想着它的結上。 – Airfix