[]是針對特定類型、固定長度的。
Array是針對任意類型、固定長度的。
List是針對特定類型、任意長度的。
ArrayList是針對任意類型、任意長度的。ArrayList是數組的複雜版本。ArrayList 類提供在大多數 Collections 類中提供但不在 Array 類中提供的一些功能。
Array的容量是固定的,而ArrayList的容量是根據需要自動擴展的。如果更改了ArrayList.Capacity屬性的值,則自動進行內存重新分配和元素複製。ArrayList提供添加、插入或移除某一範圍元素的方法。
在Array中,您只能一次獲取或設置一個元素的值。使用Synchronized 方法可以很容易地創建ArrayList的同步版本。而Array將一直保持它直到用戶實現同步爲止。
ArrayList提供將只讀和固定大小包裝返回到集合的方法。而Array不提供。
Array提供 ArrayList所不具有的某些靈活性。例如:
-
可以設置 Array的下限,但ArrayList的下限始終爲零。
-
Array可以具有多個維度,而ArrayList始終只是一維的。
特定類型(不包括Object)的Array的性能比ArrayList要好,這是因爲 ArrayList的元素屬於Object類型,所以在存儲或檢索值類型時通常發生裝箱和取消裝箱。
要求一個數組的大多數情況也可以代之以使用ArrayList。它更易於使用,並且通常具有與Object類型的數組類似的性能。
Array位於System命名空間中;ArrayList位於System.Collections 命名空間中。