1.linkedlist底層
linkedlist底層是通過鍊錶實現的,鍊錶中的乙個節點是乙個node型別的資料結構,其儲存了乙個指向前驅節點的引用、真實資料和乙個指向後繼節點的引用;
特點是隨機訪問效率低,刪除和插入快;
可以當作棧,佇列和雙端佇列來使用;
非執行緒安全,如果要建立乙個執行緒安全的linkedlist,則可以用
collections.synchronizedlist(new linkedlist(…))
實現serializable介面,因此它支援序列化,能夠通過序列化傳輸,實現cloneable介面,能被轉殖
linkedlist可以存放任何元素,包括null;
linkedlist是按雙向鍊錶查詢的,如果用get(index)方法訪問,計算index與size/2值的相對大小來決定是從頭或者從後開始查詢;
2. linkedlist中所有的呼叫方法
增加:add(e e):在尾部插入元素
addfirst(e e):在頭部插入
addlast(e e):在尾部新增元素
push:與addfirst一致
offer(e e):在尾部新增
offerfirst():在頭部新增
offerlast():在尾部新增
刪除:poll():頭部刪除
pollfirst():刪除頭
polllast():刪除尾
pop();刪除頭
remove();刪除鍊錶中第乙個元素
remove(e e):移除
removefirst(e e):刪除頭元素
removelast(e e):移除尾元素
修改:set(int index,e element)
獲取:get(int index)
getfirst()
getlast():
peek()
peekfirst()
peeklast()
indexof(object o):返回第一次出現的位置,如果不存在則返回-1
lastindexof(object o):返回元素最後一次出現的位置,如果不存在則返回-1
contains(object o):
clear();
遍歷:for迴圈
增強for迴圈
iterator()
listiterator()
注意:add與offer在尾部插入元素時,若超出佇列界限的時候,前者會丟擲異常,而後者會返回false;remove與poll在用空集合呼叫時不是丟擲異常,前者丟擲異常,後者返回null;peek與element用於佇列的頭部查詢元素,當隊列為空時,前者返回null,後者丟擲異常
3.使用linkedlist實現deque和queue介面
deque介面(雙向佇列)
deque繼承queue,deque有3個子類,分別是linkedlist,priorityqueue,arraydeque
queue介面(單向佇列)
linkedlist 的常見 用法
1,boolean add e e 在鍊錶後新增乙個元素,如果成功,返回true,否則返回false void addfirst e e 在鍊錶頭部插入乙個元素 addlast e e 在鍊錶尾部新增乙個元素 void add int index,e element 在指定位置插入乙個元素。2,e ...
vue的常見特性
表單操作 表單的作用 表單是用來做使用者互動的重要手段 表單常見型別 input 單行文字 textarea 多行文字 select 下拉多選 radio 單選框 checkbox多選框 通過vue對表單資料進行操作 v model 雙向繫結 注意 提交表單的時候是用js進行表單提交,而不是預設的表...
LinkedList前世今生
1 linkedlist元素在內部儲存的實現,節點定義即指向前一元素的指標,後一元素的指標,當前元素的值。private static class entry 2 建立乙個空鍊錶。預設有個頭指標header。private transient entryheader new entry null,n...