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 的資料結構就是乙個...