ArrayList结构图
图中绿色实线表示接口继承,绿色虚线表示实现了接口,蓝色实线表示继承了类。
要想理解这些,首先需要理解继承与接口的一些基础知识。这里就不详细进行List接口以及AbstractList虚基类进行讲解了。
构造方法
private static final long serialVersionUID = 8683452581122892189L;//个人理解相当于序列化,这里应该是版本ID吧
private static final int DEFAULT_CAPACITY = 10;//默认初始大小
private static final Object[] EMPTY_ELEMENTDATA = {
};//申明空数组,如果返回空的数组的时候用到
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {
};//用于查看是否超过默认容量,区分与上面的空数组
transient Object[] elementData; // non-private to simplify nested class access//用于存储数据的空间
private int size;//当前数组的大小
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else