Java中的ArrayList是基于數組實現的動態數組,其擴容機制的原理如下:
初始容量:當創建一個ArrayList對象時,會分配一定的初始容量,例如10個元素的容量。
擴容策略:當ArrayList中的元素個數超過當前容量時,需要進行擴容操作。ArrayList的擴容策略是增加當前容量的一半。即,新容量=當前容量 + 當前容量/2。
創建新數組:在擴容時,會創建一個新的數組,并將原來數組中的元素復制到新數組中。
更新引用:擴容完成后,會更新ArrayList內部的引用,指向新的數組。
需要注意的是,ArrayList的擴容操作是相對耗時的,因為需要進行數組的復制操作。因此,在預知可能需要存儲大量元素時,可以通過構造函數指定一個初始容量,避免頻繁的擴容操作,提高性能。