2012-02-22 9 views

回答

14

據我所知,沒有。

但是你可以使用Equivalence策略,你需要包裝在Equivalence.Wrapper情況下,所有的按鍵:

Equivalence<K> equiv = ... 
Map<Equivalence.Wrapper<K>, V> map = ... 

map.put(equiv.wrap(key), value); 

當然,這意味着你需要一個額外的對象在地圖中的每個條目。因此,我認爲像你這樣的地圖實現會很好。

7

我知道,你不會問這個特別,所以這裏有雲:
如果你想要的是一個自定義的等價功能的Map您可以通過使用標準的TreeMap,需要一個定製來達到同樣的Comparator

+0

謝謝,這實際上是什麼我一直在尋找,但由於這個問題實際上並不是我接受另一個問題的答案。 – ebaxt 2012-02-23 07:25:28

+0

沒問題。很高興我可以幫助:) – Johannes 2012-02-23 10:39:59

+5

只要不這樣做,正如TreeMap javadocs中所解釋的那樣,不要指望所有東西都能正常工作。 – 2012-02-23 18:00:03