ArrayList和LinkedList的區別

2021-09-24 19:34:41 字數 557 閱讀 2185

1,首先,底層的資料結構不同

arraylist底層的資料結構是陣列

linkedlist底層的資料結構是雙向鍊錶

2,其次,做增刪改查的差異

2.1 查詢(定位)

陣列是一段連續的記憶體空間,所以定位快

2.2 增加

如果新增到末尾,則差異不大,

arraylist可能會面臨擴容的情況,因為底層是陣列

而linkedlist只需要生成新物件,然後改變指標指向即可

如果新增到中間,

arraylist需要將後續的元素往前挪動,所以這一塊是比較耗時間的

而linkedlist則不需要,只需要改變前後物件的指標指向即可,但是定址的時間會比arraylist長

2.3 刪除

刪除的分析跟新增類似

2.4 修改

除掉首尾兩個節點,arraylist定位快,所以修改也相比linkedlist要快

3,哪種資料結構會更耗記憶體

linkedlist要更耗記憶體,因為linkedlist的節點除了儲存資料本身,還需要保證兩個引用指向,乙個是前置,乙個是後置

Array List和ArrayList的區別與

定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...

LinkedList和ArrayList的區別

對於集合collection下的list介面,有兩個實現類,arraylist和linkedlist,那麼他們兩個有什麼區別呢。arraylist的底層由陣列實現,而linkedlist的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。關於...

ArrayList和LinkedList的面試題

一 arraylist為什麼是執行緒不安全的?arraylist在新增乙個元素的時候,它可能會有兩步來完成 1.在 items size 的位置存放此元素 2.增大 size 的值。在單執行緒執行的情況下,如果 size 0,新增乙個元素後,此元素在位置 0,而且 size 1 而如果是在多執行緒情...