ArrayList自動擴容機制

2021-10-01 13:26:52 字數 478 閱讀 4444

arraylist 操作的底層其實是object 陣列,對該陣列進行了包裝。

arraylist 在建立時若不指定元素個數,會使用預設值:private static final int default_capacity = 10;

內部相當於建立了乙個: object object = new object[10];

應為陣列的容量在建立時指定,且固定不可變,arraylist新增元素個數超過了10個時,該陣列就已經滿了,

然後會呼叫private void grow(int mincapacity)方法來擴容,實際就是建立乙個新陣列,長度為

int newcapacity = oldcapacity + (oldcapacity >> 1);//原來的1.5倍

然後把舊陣列複製過來,使用新陣列進行操作:

elementdata = arrays.copyof(elementdata, newcapacity);//擴充套件空間並複製

ArrayList擴容機制

1.成員變數 預設給定的初始容量 private static final int default capacity 10 無參構造器中所使用到的空陣列例項 private static final object empty elementdata 有參構造器中所使用到的空陣列例項 private ...

ArrayList擴容機制

arraylist實現了list介面。它是乙個可調整大小的陣列,可以用來存放各種形式的資料。並提供了包括crud在內的多種方法可以對資料進行操作,但是它不是執行緒安全的。list擴容實現步驟總的來說就是分兩步 陣列定義的時候,因為需要給它分配連續的記憶體空間,需要預先指定其大小。因此當存放的資料大於...

ArrayList動態擴容機制

初始化 有三種方式預設的構造器,將會以預設的大小來初始化內部的陣列 public arraylist 用乙個icollection物件來構造,並將該集合的元素新增到arraylist public arraylist collection c 用指定的大小來初始化內部的陣列 public array...