LinkedList 原始碼學習

2022-09-10 17:48:14 字數 404 閱讀 4808

linkedlist 底層資料結構是乙個雙向鍊錶

鍊錶每個節點我們叫做 node,node 有 prev 屬性,代表前乙個節點的位置,next 屬性,代表後乙個節點的位置;

first 是雙向鍊錶的頭節點,它的前乙個節點是 null。

last 是雙向鍊錶的尾節點,它的後乙個節點是 null;

當鍊表中沒有資料時,first 和 last 是同乙個節點,前後指向都是 null;

因為是個雙向鍊錶,只要機器記憶體足夠強大,是沒有大小限制的。

分為頭部追加,與尾部追加

這些在資料結構與演算法中都學習過

刪除增加元素快

查詢元素慢,通行導致的,再優化也莫得辦法

linkedlist 適用於要求有順序、並且會按照順序進行迭代的場景,主要是依賴於底層的鍊錶結構

LinkedList原始碼學習

1.node 每個node,都包含前後兩個,也被前後兩個包含。即 雙向鍊錶結構 private static class node 2.構造 new 不像arraylist,沒做什麼 public linkedlist public linkedlist collection extends e c...

LinkedList原始碼學習

1.建構函式 linkedlist 初始化size值為0 linkedlist collection collection 將傳入集合的元素新增到linkedlist的末尾 2.成員變數 transient int size 鍊錶長度 transient node first 首節點 transie...

LinkedList原始碼學習

abstractsequentiallist 繼承自 abstractlist,是 linkedlist 的父類,是 list 介面 的簡化版實現。簡化在 abstractsequentiallist 只支援按次序訪問,而不像 abstractlist 那樣支援隨機訪問。list 的資料結構就是乙個...