1. ArrayList底层原理
ArrayList底层数据结构是数组
1.1 当用空参构造创建ArrayList集合的时候,ArrayList在底层创建了一个长度为零的数组
/**
当用空参构造创建ArrayList集合的时候,ArrayList在底层创建了一个长度为零的数组
*/
List<String> list = new ArrayList<>();
例如下面源码分析,在ArrayList中粘贴出来了一些易于自己明白的源码
transient Object[] elementData;//集合底层的数组名
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {
};
public ArrayList() {
//ArrayList空参构造
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
//这个就相当于,Object[] elementData = {};也是相当于创建了一个长度为零的数组的意思
}
1.2 当调用list.add()添加第一个元素的时候,ArrayList在底层创建了一个新的,长度为十的数组
里面默认初始化值都是null
/**
当用空参构造创建ArrayList集合的时候,ArrayList在底层创建了一个长度为零的数组
*/
List<