1. 定义一个集合
点击开这个集合,显示构建了一个空的list,初始容量为10,这是标注出来的。
从new ArrayList可以看到,就是定义了一个空的Object类型的数组。
2. 给集合添加数据时候,才增加了初始容量
点击开这个add方法,可以看到有一个ensureCapacityInternal的方法,这个方法的意思是确保容量初始化。
我们可以看到有一个方法calculateCapacity,它是计算集合容量的方法
我们可以从上图的方法中看到,如果elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA
也即初始数组时,会将DEFAULT_CAPACITY 和 minCapacity进行比较,如下图所示:
我们可以看到DEFAULT_CAPACITY的值为10,而minCapacity来自于下图的size,我们可以size的
值是一个空的基本类型,所以默认值是0,所以minCapacity的值为1,因此最后calculateCapacity
最终计算结果为10,也即集合ArrayList的初始容量为10.