jdk1.7.0_79
上文裡解析了有關arraylist
中的幾個常用方法的原始碼——《有關arraylist常用方法的原始碼解析》
,本文將對linkedlist
的常用方法做簡要解析。
linkedlist是基於鍊錶實現的,也就是說它具備了鍊錶的優點和缺點,隨機訪問慢、插入刪除速度快。既然是鍊錶,那麼它就存在節點資料結構,也不存在容量大小的問題,來乙個在尾部新增乙個。
//linkedlist$node
private
static
class node
}
第乙個預設不帶引數的構造方法,構造乙個空鍊錶。
//1.linkedlist,預設構造方法
public
linkedlist()
第二個構造方法能把乙個集合作為乙個引數傳遞,同時集合中的元素需要是linkedlist
的子類。
//2.linkedlist,能將乙個集合作為引數的構造方法
public linkedlist(collection<? extends e>c)
兩個構造方法都比較簡單,接下來看元素的插入及刪除等方法。
publicboolean
add(e e)
//linkedlist#linklast
void
linklast(e e)
學過《資料結構》的同學相信看到鍊錶的操作不會感到陌生,接著來看看刪除指定位置的元素remove(int)
方法。
//linkedlist#remove
public e remove(int
index)
//linkedlist#node,根據索引位置返回node節點
nodenode(int
index)
else
}
查詢到index
位置的node
後,呼叫unlink
方法摘掉該節點。
//linkedlist#unlink,一看即懂
e unlink(nodex)
else
if (next == null
) else
x.item = null
; size--;
modcount++;
return
element;
}
從**中就能看出linkedlist
和arraylist
兩者的優缺點,由於只涉及簡單的鍊錶資料結構,所以不再對其他方法進行解析。
Linkedlist的常用方法
boolean add e e 將指定的元素追加到此列表的末尾。void add int index e element 在此列表中的指定位置插入指定的元素。boolean addall collection extends e c 按照指定集合的迭代器返回的順序將指定集合中的所有元素追加到此列表的...
LinkedList類的常用方法
arraylist 是以陣列實現的,遍歷時很快,但是插入 刪除時都需要移動後面的元素,效率略差些。而linkedlist 是以鍊錶實現的,插入 刪除時只需要改變前後兩個節點指標指向即可,省事不少。public boolean add object element 向鍊錶末尾新增乙個新節點,該節點中的...
selenium webdriver 常用方法
1 獲得頁面的原始碼 driver.get source code driver.getpagesource 如果想將獲得的網頁原始碼儲存成檔案的話 f open r c html source code.html w f.write source code.encode utf 8 f.close...