ArrayList和LinkedList的共同點和區別


 1 ArrayList和LinkedList的相同點和不同點
 2 
 3 共同點:都是單列集合中List接口的實現類。存取有序,有索引,可重復
 4 不同點:
 5     1.底層實現不同:
 6         ArrayList底層實現是數組,LinkedList底層是雙向鏈表,有頭尾指針。
 7 
 8     2.ArrayList查詢快,增刪慢。
 9         查詢快:數組隨機訪問,通過數組地址和元素索引計算出元素地址,進行訪問。
10         增刪慢:增刪不在尾部,都需要移動元素,如果數組容量不足,還需要擴容。(擴容非常影響效率)
11         擴容:
12             1.分配一個原數組1.5倍大小的新數組
13             2.將原數組的內容拷貝到新數組
14             
15     3.LinkedList查詢慢,增刪快
16         查詢慢:從頭或尾依次尋址。
17         增刪快:只需要修改幾個指針的指向。
18         
19 應用場景:
20     業務中增刪頻繁,就用LinkedList
21     業務中主要是查詢,就用ArrayList
22     
23 LinkedList索引查詢的時候,是從頭開始往后找,還是從尾開始往前找?
24 答:會先做一個判斷,判斷要查找的元素距離頭部近還是尾部近,距離哪個近就從哪邊找。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM