Arraylist初始容量为10的由来

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.
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/PhilsphyPrgram/article/details/119848400
今日推荐