ArrayList其实就是一个长度可变的数组,初始其实是空数组,当添加第一个元素的时候数组容量才变成10
插入删除元素的时间复杂度为O(n),求表长以及增加元素,取第 i 元素的时间复杂度为O(1)
1.ArrayList的数据结构
//使用一个Object数组进行存储
transient Object[] elementData;
//数组元素的大小
private int size;
2.add方法
1.无指定下标的add方法
以下的JDK源码
//增加方法
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
//检查是否要扩容
privat