2022-03-11 10:07:03 晓掌柜 版权声明:本文为站长原创文章,转载请写明出处
1.ArrayList每次扩容是原来得1.5倍。
2.数组进行扩容时,会将老数据中得元素重新拷贝一份道新的数组中,每次数组容量得增长大于时原用量得1.5倍。
3.代价是很高得,因此再实际使用时,我们因该避免数组容量得扩张。尽可能避免数据容量得扩张。尽可能,就至指定容量,避免数组扩容的发生。
4.创建方式不同,容量不同。
ArrayList是在数组增加时触发的(即调用add()时)。
① 数组为空时的判断
② 为空时最小扩容取:默认扩容大小与传入的扩容长度的最大值
① 先拿到旧的数组长度
② 把当前长度扩充为1.5倍
③ 检测扩充后的长度是否满足要求,满足则使用1.5倍的长度
④ 检测是否最大长度溢出(安全监测,长度小于0时抛出异常、不能超出最大长度)
⑤ 把扩容后的长度,复制给原数组
PS: 检测部分如下: