Arraylist和LinkedList的異同點

2021-09-29 03:46:04 字數 629 閱讀 1177

相同點:

資料特徵相同:類中資料可重複,插入有序,可以有多個null值

繼承關係相同:均直接或間接繼承了abstractlist類,並實現了list介面

遍歷:都能使用listiterator迭代器

不同點:

底層資料結構不同:arraylist底層資料結構是陣列,linkedlist底層資料結構是雙向鍊錶。

擴容不同:linkedlist不需要擴容,arraylist需要考慮擴容。

繼承不同: 因為linkedlist繼承了deque介面,所以linkedlist還實現了deque介面的特有方法。

操作效率不同:arraylist查詢、修改的效率高,增加、刪除的效率較低,linkedlist增加、刪除的效率高,查詢、修改的效率較低。

應用場景不同:  arraylist適用於查詢量大,增刪頻率較低的場景,linkedlist適用於增刪量較大,查詢頻率較低的場景。

預設值不同: linkedlist沒有預設值,arraylist有預設值。

一般預設遍歷方式不同:arraylist一般用for迴圈遍歷,linkedlist一般用迭代器遍歷,因為arraylist用for迴圈遍歷比iterator迭代器遍歷快,linkedlist用iterator迭代器遍歷比for迴圈遍歷快。

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 而如果是在多執行緒情...