ArrayList底層是用動態的陣列實現的。
ArrayList初始容量為0,當第一次新增資料的時候才會初始化容量為10。
ArrayList在進行擴容的時候是原來容量的1.5倍,每次擴容都需要複製陣列。
ArrayList在新增資料的時候:
- 確保陣列已使用長度(size)加1之後足夠存下下一個資料。
- 計算陣列的容量,如果當前陣列已使用長度+1後的大於當前的陣列長度,則呼叫grow方法擴容(原來的1.5倍)
- 確保新增的資料有地方儲存之後,則將新元素新增到位於size的位置上。
- 返回新增成功布林值。