? 2. Array只能存儲同構的對象,而ArrayList可以存儲異構的對象。
? 同構的對象是指類型相同的對象,若聲明為int[]的數組就只能存放整形數據,string[]只能存放字符型數據,但聲明為object[]的數組除外。
? 而ArrayList可以存放任何不同類型的數據(因為它裏面存放的都是被裝箱了的Object型對象,實際上ArrayList內部就是使用"object[] _items;"這樣壹個私有字段來封裝對象的)
? 3 在CLR托管對中的存放方式
? Array是始終是連續存放的,而ArrayList的存放不壹定連續。
? 4 初始化大小
? Array對象的初始化必須只定指定大小,且創建後的數組大小是固定的,
? 而ArrayList的大小可以動態指定,其大小可以在初始化時指定,也可以不指定,也就是說該對象的空間可以任意增加。
? 5 Array不能夠隨意添加和刪除其中的項,而ArrayList可以在任意位置插入和刪除項。
? Array和ArrayList的相似點
? 1 都具有索引(index),即可以通過index來直接獲取和修改任意項。
? 2 他們所創建的對象都放在托管堆中。
? 3 都能夠對自身進行枚舉(因為都實現了IEnumerable接口)。
? ArrayList的壹些特性
? ArrayList的capacity屬性值會隨ArrayList中的項的實際大小來發生改變
? 通過ArrayList類的TrimToResize()方法可以將ArrayList實例中的空項去除以壓縮體積。
? 在C#2.0中,建議大家盡量使用範型版的ArrayList,即System.Collection.Generics命名空間下的List<T>,
? 這樣不但保證了類型安全,而且由於沒有了裝箱和拆箱的過程,從而提高了對象處理的效率。