天天看點

[Array和ArrayList的差別]

1. Array類型的變量在聲明的同時必須進行執行個體化(至少得初始化數組的大小),而ArrayList可以隻是先聲明。

如:

 int[] array = new array[3];

 或 int[] array = {1,2,3};

 或 ArrayList myList = new ArrayList();

這些都是合法的,而直接使用 int[] array;是不行的。

2. Array隻能存儲同構的對象,而ArrayList可以存儲異構的對象。

同構的對象是指類型相同的對象,若聲明為int[]的數組就隻能存放整形資料,string[]隻能存放字元型資料,但聲明為object[]的數組除外。

而ArrayList可以存放任何不同類型的資料(因為它裡面存放的都是被裝箱了的Object型對象,實際上ArrayList内部就是使用"object[] _items;"這樣一個私有字段來封裝對象的)

3. 在CLR托管對中的存放方式

Array是始終是連續存放的,而ArrayList的存放不一定連續。

4. 初始化大小

Array對象的初始化必須隻定指定大小,且建立後的數組大小是固定的,

而ArrayList的大小可以動态指定,其大小可以在初始化時指定,也可以不指定,也就是說該對象的空間可以任意增加。

5. Array不能夠随意添加和删除其中的項,而ArrayList可以在任意位置插入和删除項。

繼續閱讀