ArrayList底层是个Object 数组,当元素塞满了就得扩容。默认初始容量是10,扩容时新容量是原来的1.5倍,计算公式是oldCapacity + (oldCapacity >> 1).
扩容流程:
1.add元素时检查容量是否够用
2.如果不够,计算新容量=老容量*1.5
3.创建新数组,调用Arrays.copyOf0把老数据拷过去
4.elementData指向新数组
举个例子:初始容量10,塞第11个元素时扩到15,塞第16个时扩到22,塞第23个时扩到33,以此类推。
ArrayList底层是个Object 数组,当元素塞满了就得扩容。默认初始容量是10,扩容时新容量是原来的1.5倍,计算公式是oldCapacity + (oldCapacity >> 1).
扩容流程:
1.add元素时检查容量是否够用
2.如果不够,计算新容量=老容量*1.5
3.创建新数组,调用Arrays.copyOf0把老数据拷过去
4.elementData指向新数组
举个例子:初始容量10,塞第11个元素时扩到15,塞第16个时扩到22,塞第23个时扩到33,以此类推。
输入,输出,复盘,重复。
文章总数
12
本文阅读
1