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

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

  遍歷速度 插入刪除速度 隨機訪問速度 備註
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把元素考過去。這樣只有不能刪除一個缺點,其他優點都有。