ArrayList原始碼分析 add(E e)

2021-08-23 12:33:28 字數 954 閱讀 2593

add(e e)方法

*儲存arraylist元素的陣列緩衝區。

* arraylist的容量是這個陣列緩衝區的長度。任何

*帶有elementdata的空arraylist == defaultcapacity_empty_elementdata

*當新增第乙個元素時,*將被擴充套件到default_capacity。

transient object elementdata;

private static final object defaultcapacity_empty_elementdata = {};

public arraylist()

private static final int default_capacity = 10;

//預設0

private int size;

public boolean add(e e)

private void ensurecapacityinternal(int mincapacity)

private void ensureexplicitcapacity(int mincapacity)

private static int calculatecapacity(object elementdata, int mincapacity)

return mincapacity;

}private void ensureexplicitcapacity(int mincapacity)

private void grow(int mincapacity)

private static int hugecapacity(int mincapacity)

//arrays 工具類方法

public static t copyof(t original, int newlength)

ArrayList原始碼分析

arraylist是平時使用很多的乙個類,趁有時間,我也閱讀以下原始碼,以幫助自己加深理解。類的層次結構這裡就不列出了,主要分析一下原始碼部分,屬性部分 protected transient int modcount 0 這個屬性是從abstractlist繼承過來的,每次arraylist進行結...

ArrayList原始碼分析

有參建構函式傳入乙個int public arraylist int capacity 如果為0則返回空陣列,否則new 乙個capacity的陣列 array capacity 0 emptyarray.object new object capacity 無參建構函式 public arrayl...

ArrayList原始碼分析

最近因為擁抱變換,所以開始無奈的面試之路。因為在集合的原始碼分析上,出了些問題,所以這段時間,好好重新理一理常用的集合原始碼。版本基於jdk1.7 毫無疑問,提到常用集合。arraylist勢必是第乙個被搬出來的,因此我們就先拿它開刀了。arraylist的初始化,只有在第一次add的時候進行new...