以下是參考 think in java 實作 ArrayList v.s LinkedList 速度比較的紀錄。
size 指的是 element 的數量,每一個比較項目下方是速度單位,越少代表越快,element 的型態是 Integer。
---------------------------------------------- LinkedList ---------------------------------------------- size add get set iter.add(x) add(x,y) remove 10 164 27 26 18 369 445 100 12 39 41 15 285 20 1000 15 281 283 9 57 18 10000 14 3947 3825 8 14 15 ----------------------------------------------- ArrayList ----------------------------------------------- size add get set iter.add(x) add(x,y) remove 10 176 13 14 28 440 165 100 6 11 12 21 398 23 1000 7 11 12 66 400 80 10000 9 12 14 576 1864 689
大部分的其他比較並沒有考慮到 size 的因素,基本上都是說
若常用 add, get, set 就選擇 ArrayList , 若常用 iter.add, add(x,y), remove 就選擇 LinkedList。
上面的比較表格把 size 加入考慮的因素,e.g. 若 size 為 10000,且常用 add 和 remove,那麼建議選擇 LinkedList。
若 size 為 10,也是常用 add 和 remove , 那麼選擇 ArrayList 會比較好。