ArrayList和LinkedList

ArrayList和LinkedList在性能上各有優缺點,都有各自所適用的地方,總的說來能夠描述以下: 
1.對ArrayList和LinkedList而言,數組

  • 在列表末尾增長一個元素所花的開銷都是固定的。
  • 對ArrayList而言,
    • 主要是在內部數組中增長一項,
    • 指向所添加的元素,
    • 偶爾可能會致使對數組從新進行分配;
  • 而對LinkedList而言,
    • 這個開銷是統一的,
    • 分配一個內部Entry對象。

2.在ArrayList的中間插入或刪除一個元素性能

  • 意味着這個列表中剩餘的元素都會被移動;
  • 而在LinkedList的中間插入或刪除一個元素的
    • 開銷是固定的。

3.LinkedList不支持高效的隨機元素訪問。
4.ArrayList的空間浪費主要體如今在list列表的結尾預留必定的容量空間,對象

  • 而LinkedList的空間花費則體如今它的每個元素都須要消耗至關的空間

能夠這樣說:當操做是在一列數據的後面添加數據而不是在前面或中間,而且須要隨機地訪問其中的元素時,使用ArrayList會提供比較好的性能;List

  • 當你的操做是在一列數據的前面或中間添加或刪除數據,而且按照順序訪問其中的元素時,就應該使用LinkedList了。
相關文章
相關標籤/搜索