ArrayList扩容规则【学习笔记】

ArrayList扩容规则【学习笔记】,第1张

ArrayList扩容规则【学习笔记】 ArrayList扩容规则

无参构造初始化的时候,长度为0

在add方法第一次添加元素,扩容为10

以后每次扩容成之前的1.5倍,然后把旧数组拷贝到新数据,再把新数据放到新数组。旧数组被回收

扩容计算方式,比如之前是15

15 >> 1

=7

7+15=22为新数组长度

如果为addAll方法,且数组中没有元素,直接添加集合,会将数组扩容为 原始长度集合长度较大值

如果为addAll方法,且数组中有元素,直接添加集合,会将数组扩容为 应该扩容的长度添加元素之后的扩容长度较大值

如 长度为10 的数组 添加一个长度为6的集合

下次应该扩容为15,但是需要添加6个元素,所以15就装不下了,需要扩容到22

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存