LinkedList的原理和方法介紹 使用

2021-10-07 13:11:56 字數 3887 閱讀 3719

目錄

linkedlist底層是雙向鍊錶 變數

構造方法

public linkedlist()

public linkedlist(collection c)

常用方法,不討論最簡單的add和remove

public void addfirst(e e):在把元素新增在煉表頭

public void addlast(e e):新增在鍊錶結尾

public void clear():將資料全部置空,size=0

public object clone() :轉殖出乙個全新的鍊錶,對轉殖的鍊錶修改,不會影響原來的鍊錶

public boolean contains(object o):物件包含

public iterator descendingiterator():鍊錶反序迭代

public e element():獲取首節點的元素

public e getfirst():獲取首節點的值

public e getlast():獲取尾結點

public int indexof(object o):元素在鍊錶中第一次出現的位置

public int lastindexof(object o):元素在鍊錶中最後一次出現的位置

public listiterator listiterator(int index):迭代的時候,能對鍊錶就行修改

offer、offerlast、offerlast,將制定的元素載入到鍊錶尾,鍊錶尾,煉表頭

public e peek(),peekfirst(),peeklast():找鍊錶首節點,首節點,尾節點

public e poll();找到首節點,並刪除

public e pollfirst();找到首節點,並刪除首節點

public e polllast()找到尾節點,並刪除尾節點

public e pop():獲取首節點,並刪除首節點

public void push(e e):加入首節點

public boolean removelastoccurrence(object o):移除最後出現的

object toarray():返回object toarray(),無法強轉

public t toarray(t a) :轉換資料到指定陣列

private static class node

}

transient nodefirst;

鍊錶首節點

transient nodelast;

鍊錶尾節點

transient int size = 0;

鍊錶儲存資料量

不做任何處理

通過list構造

public class test 

}

通過linkedlist構造

public class test 

}

跑一遍之後,發現好多方法是重複的

一定要使用完成類宣告linkedlistlinkedlist = new linkedlist<>(list);,使用linkedlistlinkedlist = new linkedlist<>(list);宣告無法使用addfirst()

public class test 

}

結果:

[6, 1, 3, 4, 2]
public class test 

}

結果:

[1, 3, 4, 2, 6]
public class test 

}

結果:

[1, 3, 4, 2]

[1, 4, 2]

public class test 

}

結果:

true

false

public class test 

iteratoriterator = list.iterator();

while(iterator.hasnext())

}}

結果:

243

1134

2

public class test 

}

結果:首節點是1,所以輸入1

1
public class test 

}

結果:首節點是1,輸入1

1
public class test 

}

結果:尾結點是2,輸出2

2
public class test 

}

結果:下標從0開始,沒有返回-1

1
public class test 

}

結果:

-1

3

public class test 

system.out.println(list);

}}

結果:

134

3[8, 6, 8, 6, 8, 6, 8, 6]

public class test 

}

結果:

113

[1, 3, 4, 3]

public class test 

}

結果:

1

[3, 4, 3]

public class test 

}

結果:

134

3

public class test 

}

結果

[8, 7, 6, 1, 3, 4, 3]
public boolean removefirstoccurrence(object o):移除第乙個出現的元素
public class test 

}

結果

[1, 4, 3]
public class test 

}

結果:

[1, 3, 4]
public class test 

}

結果

134

3

public class test 

}

結果

134

3

LinkedList底層原理

首先 linkedlist 是雙向列表。用於記錄集合的數量 transient intsize 0 集合的第一項 transient nodefirst 集合的最後一項 transient nodelast linkedlist類中有乙個內部私有類node,這個類就代表雙端鍊錶的節點node。這個類...

LinkedList使用及原理

前面介紹了arrylist的原理和使用方法,本篇來介紹list家族中另乙個重要成員 linkedlist。linkedlist和arraylist一樣是集合list的實現類,雖然較之arraylist,其使用場景並不多,但同樣有用到的時候,那麼接下來,我們來認識一下它。通過idea生成linkedl...

LinkedList和ArrayList的區別

對於集合collection下的list介面,有兩個實現類,arraylist和linkedlist,那麼他們兩個有什麼區別呢。arraylist的底層由陣列實現,而linkedlist的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。關於...