[]是针对特定类型、固定长度的。
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 命名空间中。