在大多數情況下,地圖中只有0-5個參數。我猜TreeMap可能佔用的空間更小,因爲它比HashMap稀疏。但我不確定。應該使用TreeMap還是HashMap來包裝命名參數?
或者,在這種情況下編寫我自己的地圖會更好嗎?
在大多數情況下,地圖中只有0-5個參數。我猜TreeMap可能佔用的空間更小,因爲它比HashMap稀疏。但我不確定。應該使用TreeMap還是HashMap來包裝命名參數?
或者,在這種情況下編寫我自己的地圖會更好嗎?
我想TreeMap的可能有一個更小的佔地面積 ,因爲它不太稀疏 然後HashMap中。
這實際上可能是錯誤的,因爲空HashMap
插槽null
,因而佔用空間小,而且TreeMap
條目比因爲孩子指針和顏色標誌的HashMap
條目的更高的開銷。
在任何情況下,如果您擁有數十萬個這樣的地圖,這只是一個問題。
主要區別在於TreeMap
是SortedMap
,HashMap
不是。如果您需要對地圖進行排序,請使用TreeMap
,如果不是,則使用HashMap
。性能特徵和內存使用情況可能會有所不同,但是如果您只有0-5個條目,則不會有明顯差異。
我不會推薦你寫自己的地圖,除非你需要標準地圖無法提供的功能,這聽起來好像你沒有。
我想你不需要訂單條目Map
,所以HashMap
是適合你的。
5項不是性能問題。
你需要編寫Map
有十幾種方法來實現,我不認爲這是你所需要的。
如果你的5個鍵總是相同的(或者是一小組鍵的一部分),並且你通常通過字符串文字來查詢它們,而且你很少必須真正解析用戶輸入或類似的鍵,那麼你可以考慮使用枚舉類型作爲EnumMap的關鍵類型。這應該比HashMap更有效率。不過,如果你有很多這樣的地圖,這個區別只會很重要。