目錄
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的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。關於...