[英]Should use TreeMap or HashMap for wrapping named parameters?
在大多數情況下,地圖中只有0-5個參數。 我猜TreeMap的占地面積可能較小,因為它比HashMap稀疏。 但是我不確定。
或者,在這種情況下編寫自己的地圖也許更好?
主要區別在於TreeMap
是SortedMap
,而HashMap
不是。 如果需要對地圖進行排序,請使用TreeMap
,否則請使用HashMap
。 性能特征和內存使用情況可能會有所不同,但是如果您只有0-5個條目,則不會有明顯的差異。
我不建議您編寫自己的地圖,除非您需要標准地圖無法提供的功能(聽起來好像您沒有)。
我猜TreeMap的占地面積可能較小,因為它比HashMap稀疏。
這實際上可能是錯誤的,因為空的HashMap
插槽為null
,因此占用的空間很小,並且由於子指針和顏色標記, TreeMap
條目比HashMap
條目具有更高的開銷。
無論如何,如果您有成千上萬的此類地圖,這只是一個問題。
我猜您不需要Map
的條目順序 ,因此HashMap
適合您。
5個條目與性能無關。
您需要編寫Map
,其中包含要實現的許多方法,我認為這不是您所需要的。
如果您的大約5個鍵始終是相同的(或一小部分鍵的一部分),並且無論如何您通常都是通過字符串文字查詢它們的,並且您幾乎不必真正從用戶輸入或類似輸入中解析鍵,那么您可以考慮使用枚舉類型作為EnumMap的鍵類型。 這應該比HashMap更有效。 不過,只有在您擁有許多此類地圖的情況下,差異才有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.