LinkedList原始碼分析 一

2021-10-19 17:25:49 字數 1128 閱讀 8128

## linkedlist原始碼分析(一)

/*linkedlist雙向鍊錶特徵:

1. 儲存資料,非連續空間。

2. 資料之間通過引用連線,方便遍歷和使用

3. 遍歷效率較低,資料非連續空間儲存,需要通過引用跳轉過程來完成。

4. 刪除插入操作效率高,但是注意位址的轉移和儲存問題。

5. linkedlist鍊錶當中的操作其實大部分都是和c語言指標乙個概念

增刪快:

增刪快是每乙個元素通過引用連線,新增元素或者刪除元素,重新組建連線引用即可,效率較高,不

存在移動和擴容問題

查詢慢:

雙向鍊錶結構儲存資料非連續空間,需要在節點node跳轉完成資料查詢過程,效率較低。

1.節點

a.向前的引用

b.儲存元素的引用

c.向後的引用

class node

2.管理節點的linkedlist

a.煉表頭!

b.當前鍊錶中有多少個元素!

class linkedlist

要求實現的方法:

新增方法:

boolean add(e e);

boolean addfirst(e e);

boolean addlast(e e);

boolean add(int index, e e);

刪除方法:

e remove(int index);

e removefirst();

e removelast();

void remove(object obj);

修改方法:

e set(int index, e e);

查詢方法:

e get(int index);

e getfirst();

e getlast();

int indexof(object obj);

int lastindexof(object obj);

boolean contains(object obj);

object toarray();

listsublist(int start, int end);

*/

LinkedList 原始碼分析

linkedlist資料結構是 雙向鍊錶 先來講下單鏈表和雙向鍊錶 雙向鍊錶 單鏈表相對於雙向鍊錶來說,結構簡單。但有乙個缺點,即在單鏈表中只能通過乙個節點的引用訪問其後續節點,無法直接訪問其前驅節點,如果在單鏈表中想找到某個幾點的前驅節點,必須遍歷鍊錶,耗費時間。因此擴充套件了單鏈表,在單鏈表結構...

LinkedList原始碼分析

資料結構 linkedlist是雙向迴圈鍊錶 1.構造方法 constructs an empty list.構造乙個空的列表 public linkedlist private transient entryheader new entry null,null,null entry e eleme...

LinkedList原始碼分析

linkedlist雖然和arraylist都實現了list介面,但兩者的底層資料結構截然不同。從類名可以看出,arraylist底層資料結構是陣列,而linkedlist底層資料結構是雙向鍊錶。兩者資料結構的優劣如下,arraylist按下標查詢元素速度快,但插入元素或者刪除元素效率低,因為都設計...