1.Array累心的變量在聲明的同時必須進行實例化(至少的初始化數組的大小),而ArrayList可以只先聲明。
2.Array只能存儲同構的對象,ArrayList可以存儲異構變量。
/*這里有一個裝箱和拆箱的概念,在以后會用到:如 將String,int等隱式轉化為Object是裝箱. 將Object強制轉化為string,int是拆箱. 在向Arraylist添加數據的過程中,對象先被裝箱為Object,需要調用時,再拆箱為對應的對象, 但在這個過程中,強制轉化加上ArrayList的異構特性,可能導致很多問題,由此提出了泛型的概念*/
3.在CLR托管對中東存放方式.
Array是始終連續存放的,ArrayList不一定是
4.初始化大小
Array對象的初始化必須制定大小,且創建后的數組大小是固定的,而ArrayList的大小可以動態指定.
關於泛型:
ArrayList是一個非泛型集合類,添加到ArrayList中的任何引用或值類型都將隱式向上強制轉換為Object.如果項是值類型,則必須在將其添加到列表中是進行裝箱操作.
泛型是最常見的用途是創建集合類。.Net Framework類庫在Collection.Generic命名空間中包含ijge泛型集合類。List<T>類是ArrayList類的泛型等效類。使用大小可以按需動態增加的蘇族實現IList泛型接口.動態數組的好處是不必須事先設置較大的數組,減少不必要的內存開銷.