linkedlist為乙個雙向迴圈鍊錶,
linkedlist兩個屬性:
private transient entryheader = new entry(null, null, null); //煉表頭,空資料
private transient int size = 0;
public linkedlist()
元素entry類封裝:
entry為linkedlist的內部靜態類。
private static class entry
}
內建迭代器listitr
listitr <-listiterator <- iterator
public inte***ce listiteratorextends iterator
獲得第i
們元素
通過linkedlist的size
,折半查詢。
private entryentry(int index) else
return e;
}
add增加元素
public boolean add(e e)
private entryaddbefore(e e, entryentry)
remove刪除元素:
public boolean remove(object o)
}} else }}
return false;
}private e remove(entrye)
arraylist與
linkedlist
的增刪查
增加:在第i位增加乙個元素
arraylist: 需要把第
i位及後面的所有元素往後移動一位;且
需要擴充元素陣列!
linkedlist:迴圈鍊錶,找到第
i位元素,重新指定前驅,後驅;(
size/2
折半迴圈)
刪除:刪除第i
位元素
arraylist: 需要把第
i位後面的所有元素往前移動一位;
linkedlist:迴圈鍊錶,找到第
i位元素,重新指定前驅,後驅;(
size/2
折半迴圈)
查詢:獲取第i
位元素
arraylist: 陣列下標i
linkedlist:迴圈鍊錶,找到第
i位元素(
size/2
折半迴圈)
jdk10 LinkedList閱讀筆記
likedlist,乙個dequeue queue 鍊錶的雜合體,操作很簡單。不過還是寫寫吧 public linkedlist 什麼都沒乾 public linkedlist collection c 執行了一下addall private static class node 乙個正常雙向鍊錶的節...
jdk原始碼閱讀 linkedlist
首先還是從建構函式開始 constructs an empty list.public linkedlist 是乙個空的 然後我們從add看 public boolean add e e 定位到linklast void linklast e e 觀察發現這個node是乙個雙向鍊錶,每乙個節點指著自...
LinkedList原始碼閱讀與理解
linkedlist原始碼閱讀與理解 幾個變數 記錄長度 transient int size 0 記錄頭節點 transient nodefirst 記錄尾節點 transient nodelast 核心類 private static class node 幾個方法 元素加入鍊錶 public ...