LinkedList原始碼學習

2022-09-22 02:24:10 字數 2594 閱讀 2618

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

list 的資料結構就是乙個序列,儲存內容時直接在記憶體中開闢一塊連續的空間,然後將空間位址與索引對應。

deque 表示雙端佇列。雙端佇列是在兩端都可以進行插入和刪除的佇列。deque是乙個比stack和queue功能更強大的介面,它同時實現了棧和佇列的功能。arraydeque和linkelist實現了deque介面。

cloneable介面 是乙個標記介面,也就是沒有任何內容

serializable介面 是啟用其序列化功能的介面。實現j**a.io.serializable 介面的類是可序列化的。沒有實現此介面的類將不能使它們的任意狀態被序列化或逆序列化。

public class linkedlistextends abstractsequentiallistimplements list, deque, cloneable, serializable 

}

/**

* 建構函式

*1.無參建構函式linkedlist()

* 2.有參建構函式

* 2.1linkedlist(collection extends e> c)

* 2.2linkfirst(e e)

*///無參構造,size為0

public linkedlist()

//將已有元素的集合collection 的例項新增到 linkedlist 中,呼叫的是 addall() 方法

public linkedlist(collection extends e> c)

//將乙個集合的所有元素新增到鍊錶後面,返回是否成功,成功為 true,失敗為 false。

public boolean addall(collection extends e> c)

//刪除並返回第乙個元素。

public e removefirst() else

}

//刪除首結點

private e unlinkfirst(linkedlist.nodef) else

//size - 1

--this.size;

//增加鍊錶修改次數

++this.modcount;

//返回首結點的數值

return element;

}

public boolean remove(object o)

//刪除某一元素,返回是否成功,成功為 true,失敗為 false。

public boolean remove(object o)

}} else }}

return false;

}

//刪除引數結點

e unlink(linkedlist.nodex) else

//如若要刪除的結點為最後乙個結點

if (next == null) else

//將x設孔

x.item = null;

//size也 - 1

--this.size;

++this.modcount;

//返回被刪除結點的資料

return element;

}

//刪除指定位置的元素。

public e remove(int index)

//返回指定位置的元素。

//返回第乙個元素。

public e getfirst() else

}

//為add,get等操作的提供了查詢並返回結點的功能

linkedlist.nodenode(int index)

//返回index結點

return x;

} else

return x;}}

LinkedList原始碼學習

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

LinkedList 原始碼學習

linkedlist 底層資料結構是乙個雙向鍊錶 鍊錶每個節點我們叫做 node,node 有 prev 屬性,代表前乙個節點的位置,next 屬性,代表後乙個節點的位置 first 是雙向鍊錶的頭節點,它的前乙個節點是 null。last 是雙向鍊錶的尾節點,它的後乙個節點是 null 當鍊表中沒...

LinkedList原始碼學習

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