首页 > 其他 > 详细

源码分析:ArrayList

时间:2020-05-15 22:32:40      阅读:52      评论:0      收藏:0      [点我收藏+]

ArrayList:动态数组
内部实现:数组

1.初始化大小:10
如果JDK1.8时,new ArrayList(),发现数组初始化为一个DEFAULTCAPACITY_EMPTY_ELEMENTDATA,长度为0的空数组。
如果JDK1.6时,new ArrayList(),发现数组直接初始化为一个长度为10的Object[]。
如果JDK1.7时,new ArrayList(),发现数组初始化为一个EMPTY_ELEMENTDATA,长度为0的空数组。

2.添加元素时,如果数组满了,如何扩容
扩容为1.5倍

JDK1.7和JDK1.8时,因为一开始是空数组,那么第一次扩展为长度为10的数组。然后不够的话,再扩容为原来的1.5倍。

3.删除元素时,数组会不会缩小
不会
但是像ArrayList有一个trimToSize()可以调整大小。

源码分析:ArrayList

原文:https://www.cnblogs.com/1185937986-jili/p/12897532.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!