2019獨角獸企業重金招聘Python工程師標準>>>
LinkedList 實現List<E>, Deque<E>, Cloneable, java.io.Serializable接口
二開最簡單的源碼、對于Deque解釋如下
這是一個線性的雙端隊列接口,繼承自接口Queue
下面是LinkedList的主要參數
jquery源碼分析、
first第一個節點 last最后一個節點 size 列表的長度
主要看一下add 方法
linux源碼分析、
安卓源碼分析、我們可以看到LinkedList添加節點的時候 是New了一個Node節點 這個節點有三個參數 item 元素
next 下一個元素 prev 上一個元素
他的一個三參構造器 將最后一個節點 作為新加的節點的前一個元素(prev)的值
新節點的下一個節點(next)賦值null
然后 將新節點賦值給last變量 更新last標識 最后size +1 (列表長度)and?modCount+1 (添加次數)
remove();
remove(int);
判斷index 是不是在size范圍之內
總體來說 就是 如果當前節點 A 前一個節點是空 就將LinkedList得frist標識 置為A節點得next指向得節點
如果不是 則將A節點得前一個節點得next值指向 A節點得下一個節點?
當前節點 A 下一個節點是空 就將LinkedList得last標識 置為A節點得prev指向得節點
如果不是將A節點得下一個節點得 前一個節點指針(prev)指向A節點得prev節點
可以跳過上面這個四行 總的數據結構就是 一個雙向鏈表 基礎得刪除增加操作
總結:LinkedList整體結構 是以對象Node為元素 得一個雙線鏈表
對比前一章得ArrayList 我們可以看出 如果做插入操作 刪除操作 用Linkedlist會有較高得效率
對于查詢來說 通過數組下標直接訪問一般會比鏈表要快?
所以我們要更具不同的業務場景選擇合適得列表結構
?
?
?