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