ArrayList源码
ArrayList是实现了List接口的一个类,其底层是一个Object类型的数据用来存储数据,
在查找和顺序存储的时候效率高,复杂度可以达到O(1)
字段解析
//数组默认长度10
private static final int DEFAULT_CAPACITY = 10;
//空数组示例
private static final Object[] EMPTY_ELEMENTDATA = {};
//实际存储数据的数组
transient Object[] elementData;
//数据中元素的个数
private int size;
//最大数据长度 为Integer最大值-8
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
构造器解析
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
这个构造器是创建一个长度为10的Object类型的数组
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new