該類繼承於abstractlist,裡面對於資料和結構的操作如下。
trimtosize();更新size,如果size小於(陣列的)lenth,則更新size的大小。
public void ensurecapacity(int mincapacity)確保容量,如果不夠就擴容成原來的1.5倍+1;
public int size() 容量
public boolean isempty();判斷是否為空。
public boolean contains(object o)判斷是否有這個物件
public int indexof(object o)找到標籤。
public int lastindexof(object o)找到最後一次出現的位置。
public object clone()轉殖,返回新的乙個物件
public object toarray() ,變成陣列,返回乙個obj的陣列。
public t toarray(t a),變成t型別的陣列。
public e get(int index)通過標籤訪問元素。
public e set(int index, e element)重新設定某個標籤的元素。
public boolean add(e e) 新增乙個元素。
public void add(int index, e element)在指定位置插入元素
public e remove(int index)清除,有檢查。
public boolean remove(object o)刪除這個物件,不需要進行檢查。
private void fastremove(int index) 快速刪除,內部使用,不需要進行檢查。
public void clear()清除這個陣列鍊錶。
public boolean addall(collection<? extends e> c)吧乙個集合類的所有元素都新增到後邊。
public boolean addall(int index, collection<? extends e> c)在指定的位置後面插入所有的元素。
protected void removerange(int fromindex, int toindex) 刪除指定範圍內的元素。
private void rangecheck(int index) 檢查範圍,只有內部能用。
list和arraylist 如果不把型別t指出來,那麼返回的會是乙個object。
看了arraylist 的add(int,e)原始碼和add(e)原始碼 lastindexof(object o)這是查詢
這個obj最後出現的位置(找到了返回位置,沒有這個元素返回-1,這個元素為空返回最
後乙個位置)。clone方法。
toarray方法
public t toarray(t a)
remove(index),先做邊界檢查,然後將大小-1,然後將所有元素向前複製乙個位置。
返回已刪除了。
remove(e),刪除這個物件。fastremove(私有)這個不做任何檢查,不用儲存已刪除
的元素。。。modcount是從結構上改變這個arraylist的次數。
addall
AbstractCollection原始碼分析
abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...
ThreadPoolExecutor原始碼閱讀
執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...
OrangePi One Android 原始碼編譯
一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...