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

前言

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/ibcdwx/p/13772669.html