LinkedList原始碼學習

2021-08-16 17:10:15 字數 1938 閱讀 9891

1.node

每個node,都包含前後兩個,也被前後兩個包含。(即

雙向鍊錶結構)

private

static

class

node

}2.構造(new)--不像arraylist,沒做什麼

public

linkedlist()

public

linkedlist(collection<?

extends

e>c)

3.size()

public

int

size

() 4.add()

當add第乙個的時候,會把其當成first。

public

boolean

add(ee)

void

linklast(ee

) 5.add(index,element) //從這個原始碼上來看,如果要在中間新增乙個,要先找到當前node,查詢起來不必arrylist快

public

void

add(int

index

, eelement)

void

linkbefore(ee

, node

succ

) node

node

(int

index

)else

}6.remove(index)

public

eremove(

int

index

) e

unlink

(nodex)

else

if

(next

==null

) else

x.item

=null

; size

--;

modcount

++;

return

element; }

7.get/set

public

eget

(int

index)

public

e set(

int

index

, eelement

) 8.indexof/contains

public

int

indexof

(objecto)

}else

}return

-1; }

public

boolean

contains

(objecto)

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...

LinkedList原始碼學習

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