1. 程式人生 > >Set、List、HashMap優缺點比較,高性能集合

Set、List、HashMap優缺點比較,高性能集合

備註 如果 所有 數據 dex 直接 true clas nbsp

遍歷速度 插入刪除速度 隨機訪問速度 備註
Set 比list多占一個指針的存儲空間
List 必須之前知道數組元素個數,因為申請內存是連續長度明確的
HashMap 適合海量數據,o(1)的隨機訪問速度,不是可遍歷
變體Set set的基礎上多占一個List的控件,不過各種性能都好
變體List 插入快不能刪除 各種性能都好就是不能有刪除操作

變體Set:SetList,在SetList,保存一個狀態(listEnable),調用get(index)方法時,如果listEnable=false,為該SetList建立一個List,用set元素填充List個元素,用List隨機訪問。如果listEnable=true,直接隨機訪問list。調用add和delete的時候設置listEnable為false,回收list的空間。這樣就有所有的優點,但是存儲空間是原來的2倍

變體List:建立一個足夠大的List,這個list只能插入不能刪除,一旦數量到達上限,新建一個list二倍容量的list把元素考過去。這樣只有不能刪除一個缺點,其他優點都有。

Set、List、HashMap優缺點比較,高性能集合