ArrayList 的扩容机制(原理)是什么_面试题


前言

如果你没有看过ArrayList的底层源码,建议你去看一遍并理解,因为我也明白大家想快点刷题找工作,但这种你光看简略的表述是不能充分理解的。

给大家一篇解析ArrayList底层源码的文章,希望对大家有帮助:

https://www.cnblogs.com/ibcdwx/p/13769756.html

ArrayList 的扩容机制(原理)是什么

  arraylist的底层是用数组来实现的。我们初始化一个arraylist集合还没有添加元素时,其实它是个空数组,只有当我们添加第一个元素时,内部会调用calculateCapacity方法并返回最小容量10,也就是说arraylist初始化容量为10。

  当最小容量大于当前数组的长度时,便开始可以扩容了,arraylist扩容的真正计算是在一个grow()里面,新数组大小是旧数组的1.5倍,如果扩容后的新数组大小还是小于最小容量,那新数组的大小就是最小容量的大小,后面会调用一个Arrays.copyof方法,这个方法是真正实现扩容的步骤。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM