此程序用於測試 :每次for循環內重新定義一個Integer數組,賦值后加入arrayList。由於下一次的Integer對象重新定義,原來的對象是否會被釋放?
解答:不會,因為原對象仍被引用(被arrayList指向),不會釋放空間。所以每次循環重新定義一個對象對arrayList內的元素無影響。
源程序:
1 import java.util.ArrayList; 2 import java.util.Arrays; 3 4 public class Test { 5 public static void main(String[] args) { 6 ArrayList<Integer[]> arrayList = new ArrayList<>(); 7 for (int i = 0; i < 5; i++) { 8 Integer[] eles = new Integer[5]; 9 10 for (int j = 0; j < 5; j++) { 11 eles[j] = i; 12 } 13 arrayList.add(eles); 14 System.out.println("array " + i); 15 System.out.println(Arrays.toString(arrayList.get(i))); 16 System.out.println(); 17 } 18 19 } 20 }
輸出:
總忘記這兩個點,記錄一下。
聲明ArrayList(動態數組)時,不用指定空間大小。
arrayList.size()返回的是list內的元素個數,此處沒有加入元素,不能使用。
錯誤:
size()源代碼: