ArrayList
ArrayList 是 List 接口下的实现类,它的底层是数组,可以自动扩容。
它的底层数组如下:
构造方法
Arraylist():构造的是一个初始容量为10的空列表
ArrayList(int initialCapacity):构造的是一个指定初始容量的一个空列表
从源码可以看到,赋予底层 elementData 的是一个空数组,那我们为什么说它的默认容量为10呢?
因为 ArrayList 起初创建的是一个空数组,在第一次调用add()方法时为初始数组扩容,因此初始容量变成了10。
add()方法源码
add()中调用了 ensureCapacityInternal()方法