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 命名空间中。

解决方案 »

  1.   

    ArrayList能动态地增加或减少其所容量的元素数量,ArrayList默认容量是16,当元素数量超过集合容量时,其容量会自动增加;想使用普通数组,但又不愿为分配与释放内存、搜索、排序等费神时,使用ArrayList是极为合适的。
    Array的大小是固定的,利用Array能减少处理时间,处理ArrayList集合中的大量无序元素,此时将ArrayList集合转化为数组更合适,因为在数组中可用索引直接指定元素并对它进行处理。
      

  2.   

    哇,这么详细...嗯,对我来说:
    如果我已经知道上限,而且数据是同一类型的,我会用 Array
    否则就用 ArrayList。
      

  3.   

    最有用的区别就是一个是固定长度(array),一个是可变长度(arraylist)