初次解析Arraylist源码
代码
public class SourceCode01 {
public static void main(String[] args) {
// TODO: 分析ArrayList的构造函数
ArrayList list= new ArrayList();
for (int i = 1; i < 10; i++) {
list.add(i);
}
for (int i = 11; i < 15; i++) {
list.add(i);
}
list.add(100);
list.add(200);
list.add(null);
}
}
ArrayList的无参构造函数
从上面两幅图可以看出
- DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}就是一个空数组
- 一开始的elementDate = {}
add方法
list.add(i) 先会进入Integer进行装箱,
add 方法
这里上面add方法的判断,初始化默认为空添加一个元素list就会变成10
grow方法
这里实现1.5倍扩容
让debug信息更加清晰