簡體   English   中英

應該使用TreeMap或HashMap來包裝命名參數嗎?

[英]Should use TreeMap or HashMap for wrapping named parameters?

在大多數情況下,地圖中只有0-5個參數。 我猜TreeMap的占地面積可能較小,因為它比HashMap稀疏。 但是我不確定。

或者,在這種情況下編寫自己的地圖也許更好?

主要區別在於TreeMapSortedMap ,而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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM