/**
* shared empty array instance used for empty instances.
*/private static final object empty_elementdata = {};
/*** shared empty array instance used for default sized empty instances. we
* distinguish this from empty_elementdata to know how much to inflate when
* first element is added.
*/private static final object defaultcapacity_empty_elementdata = {};
/**
* constructs an empty list with the specified initial capacity.
** @param initialcapacity the initial capacity of the list
* @throws illegalargumentexception if the specified initial capacity
* is negative
*/public arraylist(int initialcapacity) else if (initialcapacity == 0) else
}/**
* constructs an empty list with an initial capacity of ten.
*/public arraylist()
由jdk原始碼可知:
1,當不指定initialcapacity時建立空arraylist 此時內部空陣列為defaultcapacity_empty_elementdata,當新增第乙個元素時 長度自動擴充至default_capacity也就是10
2,當指定initialcapacity=0時建立空arraylist 此時內部空陣列為empty_elementdata,每新增一次元素容量擴充1
測試**:
二,trimtosize()方法 將elementdata陣列中的null去除,長度修剪至與元素個數size相等
ArrayList的remove 方法原始碼解讀
remove index public boolean remove object obj else return false arraylist的remove object obj 方法判斷是否為同乙個物件的時候用的是equals方法,如果我們要移除list中的自定義類的時候需要重寫equals方...
JDK1 8 ArrayList擴容機制原始碼分析
屬性 預設長度 private static final int default capacity 10 空陣列 有參構造器 private static final object empty elementdata 空陣列 無參構造器 private static final object def...
AbstractCollection原始碼分析
abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...