1. 程式人生 > >ArrayList和LinkedList的共同點和區別

ArrayList和LinkedList的共同點和區別

拷貝 需要 還需要 clas 指向 內容 linked 有序 應用場景

 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 答:會先做一個判斷,判斷要查找的元素距離頭部近還是尾部近,距離哪個近就從哪邊找。

ArrayList和LinkedList的共同點和區別