定义 java.util.ArrayList类就是传说中的动态数组,相当于Array的复杂版本,也就是说,ArrayList对象既有数组的特征,也有列表的特征。ArrayList实现了List接口,允许对元素进行快速随机访问。 结构 源码 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8683452581122892189L; // 默认大小 private static final int DEFAULT_CAPACITY = 10; // 共享的空数组,用于初始化空实例 private static final Object[] EMPTY_ELEMENTDATA = {}; //主要作为一个标识位,在扩容时区分:默认大小和容量为0,使用默认容量时采取的是“懒加载” //即等到add元素的时候才进行实际容量的分配 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; //ArrayList内部结构,是一个Object[]类型的数组 transient Object[] elementData; //记录当前容器中有多少元素