ArrayList和LinkedList的區別

2021-08-04 03:38:29 字數 608 閱讀 2815

arraylist其實是包裝了乙個陣列 object,當例項化乙個arraylist時,乙個陣列也被例項化,當向arraylist中新增物件時,陣列的大小也相應的改變。這樣就帶來以下優缺點:

1.快速隨機訪問。你可以隨機訪問每個元素而不用考慮效能問題,通過呼叫get(i)方法來訪問下標為i的陣列元素。

2.向其中新增物件速度慢。當你建立陣列時並不能確定其容量,所以當改變這個陣列時就必須在記憶體中做很多事情。

3.操作其中物件的速度慢。當你想在陣列中任意兩個元素中間新增物件時,陣列需要移動後面所有的物件。

linkedlist是通過節點直接彼此連線來實現的。每乙個節點都包含前乙個節點的引用,後乙個節點的引用和節點儲存的值。當乙個新節點插入時,只需要修改其中保持先後關係的節點的引用即可,刪除記錄時也一樣。這樣就帶來以下優缺點:

1.操作物件的速度快。只需要改變連線,新的節點可以儲存在記憶體中的任何地方。

2.不能隨機訪問。雖然存在get()方法,但是這個方法是通過遍歷節點來定位的,所以速度慢。

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