ArrayList

jdk 7

初始化默认为 大小为10的数组。

ArrayList list = new ArrayList<>();

 

ensureCapacityInternal(int capacity)

if(本身的已有的长度-数组总长度)<0

不会扩容,否则扩容

扩容如果超了,就扩容为1.5倍。

 

扩容完还是小,就用现在真正需要的长度

 

扩容完将原数组的值,复制给新的数组。

如果最大还不够,就报错!

 

jdk 8

初始化的时候为空的数组。

底层Object 初始化{},并没有10的长度。

list。add 第一次调用add 底层会调用长度为10的数组。 

 

posted @ 2022-04-01 15:18  雷雷提  阅读(50)  评论(0编辑  收藏  举报