array與array - list有什麼區別

來源:魅力女性吧 2.86W
array與array list有什麼區別

Array和ArrayList的異同點

一、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內部就是使用4object[] _items"這樣一個私有字段來封裝對象的)

#3 在CLR託管對中的存放方式

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

#4 初始化大小

Array對象的初始化必須只定指定大小,且創建後的數組大小是固定的,而ArrayList的大小可以動態指定,其大小可以在初始化時指定,也可以不指定,也就是説該對象的空間可以任意增加。

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

二、Array和ArrayList的相似點

#1 都具有索引(index),即可以通過index來直接獲取和修改任意項。

#2 他們所創建的對象都放在託管堆中。

#3 都能夠對自身進行枚舉(因為都實現了IEnumerable接口)。

注:

在C#2.0中,建議大家儘量使用範型版的ArrayList,即rics命名空間下的List<T>,這樣不但保證了類型安全,而且由於沒有了裝箱和拆箱的過程,從而提高了對象處理的效率。

熱門標籤