2013-10-31 91 views
3

我有一些數據將按照排序順序進入(首先按排序順序排列整組鍵,然後以隨機順序重複)。所以,我可以同時使用LinkedHashMap或者TreeMap來保存排序(對吧?)。我的問題是,他們哪一個更快,哪個更節省空間?LinkedHashMap和TreeMap哪個更快?

+1

LinkedHashMap會更好,我認爲。原因是你的訂單插入順序是正確的順序,另一方面樹圖(紅黑樹)成本o(lgn)to reblance – farmer1992

+0

@Andrew Barber:但問題是如此直接..我應該使用哪種數據結構?我會縮小範圍以加速成爲唯一的標準。這會有幫助嗎? –

+2

有文檔說明LinkedHashMap是O(1)用於插入和檢索,其中TeeMap是O(log(N))。 – EJP

回答

1

LinkedHashMap插入速度更快,因爲在插入像TreeMap時不必進行不必要的比較,正如@EJP所述。由於LinkedHashMap只需要一個前一個鍵和一個下一個鍵的鏈接,而TreeMap需要一個鏈接到父節點和1個鏈接到子節點,我認爲TreeMap也會佔用更大的內存。

所以我的投票是LinkedHashMap。內存少,時間少,當然CPU也少。