ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。 ArrayList不是线程安全的,只能用在单线程环境下。 实现了Serializable接口,因此它支持序列化,能够通过序列化传输; 实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问; 实现了Cloneable接口,能被克隆。
动态扩容
一 初始化
首先有三种方式来初始化:
public ArrayList();
默认的构造器,将会以默认的大小来初始化内部的数组
public ArrayList(Collection<? extends E> c)
用一个ICollection对象来构造,并将该集合的元素添加到ArrayList
public ArrayList(int initialCapacity)