Array
Array 长度固定,如果删除或者新增都需要重新排列所有数据,开销很大。 Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。
List
可以给自动扩容,而数组初始化的时候就应该给指定大小。 而且 List 的方法很多,对里面的元素操作起来也方便。
- 其实
List
是一个接口,或者说是一套协议,所以List
是不能被构造的:
List list; // 正确 list = null; List list=new List(); // 错误
ArrayList
ArrayList
是继承并实现了List
,且加上一些自己特有的方法组成的类。
还有其他的xxxList
类也是一样,都是继承于List
。List
不能被构造,但是可以作为接收对象来使用:
List list = new ArrayList(); ArrayList arrayList = new ArrayList(); list.trimToSize(); // 错误,没有该方法。 arrayList.trimToSize(); // ArrayList里有该方法。