1. 程式人生 > >ArrayList 和 LinkedList 在效能上各有優缺點

ArrayList 和 LinkedList 在效能上各有優缺點

1.對 ArrayList 和 LinkedList 而言,在列表末尾增加一個元素所花的開銷都是固定的。對 ArrayList 而言,主
要是在內部陣列中增加一項,指向所新增的元素,偶 爾可能會導致對陣列重新進行分配;而對 LinkedList 而言,這
個開銷是統一的,分配一個內部 Entry 物件。
2.在 ArrayList 的中間插入或刪除一個元素意味著這個列表中剩餘的元素都會被移動;而在 LinkedList 的中間
插入或刪除一個元素的開銷是固定的。
3.LinkedList 不支援高效的隨機元素訪問。
4.ArrayList 的空間浪費主要體現在在 list 列表的結尾預留一定的容量空間,而 LinkedList 的空間花費則體現在
它的每一個元素都需要消耗相當的空間
可以這樣說:當操作是在一列資料的後面新增資料而不是在前面或中間,並且需要隨機地訪問其中的元素時,使用
ArrayList 會提供比較好的效能;當你的操作是在一列資料的前面或中間新增或刪除資料,並且按照順序訪問其中的元
素時,就應該使用 LinkedList 了。