arraylist和linkedlist的區別

2021-09-24 20:16:17 字數 611 閱讀 6821

1.arraylist 的底層是陣列,它可以以 o(1)時間複雜度對元素進行隨機訪問與此對應,linkedlist 是以元素列表的形式儲存它的資料,查詢某個元素的時間複雜度是 o(n)。

2.相對於 arraylist,linkedlist 的插入,刪除操作速度更快,因為當元素被新增到集合 任意位置的時候,不需要像陣列那樣重新計算大小或者是更新索引。

3.對arraylist和linkedlist而言,在列表末尾增加乙個元素所花的開銷都是固定的。對arraylist而言,主要是在內部陣列中增加一項,指向所新增的元素,偶爾可能會導致對陣列重新進行分配:而對linkedlist而言,這個開銷是統一的,分配乙個內部entry物件。

4.arraylist的空間浪費主要體現在list列表的結尾預留一定的容量空間,而linkedlist的空間花費則體現在它的每乙個元素都需要消耗相當的空間,linkedlist中有乙個私有的內部類。所以我們得出結論:當操作是在一列資料的後面新增資料而不是在前面或中間,並且需要隨機地訪問其中的元素時,使用arraylist會提供比較好的效能;當你的操作是在一列資料的前面或者中間要進行新增或刪除資料,並且想按照順序訪問其中的元素時,就應該使用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 而如果是在多執行緒情...