2016-03-02 67 views

回答

2

番石榴沒有IdentitySetMultimap。我們通常建議您按照您的建議進行操作,或者創建SetMultimap<Equivalence.Wrapper<Key>, Equivalence.Wrapper<Value>>。在查詢/修改集合之前,您將使用Equivalence.identity() . wrap(...)來包裝您的鍵和值。

(更新:可以從another answer看到,有另一種方式來做到這一點。)

3

使用Eclipse Collections您目前可以爲值設置標識,但不是密鑰的標識映射(截至今天)。如果您只需要爲值的標識設置,那麼以下方法將起作用。

MutableSetMultimap<String, String> multimap = 
    UnifiedSetWithHashingStrategyMultimap.newMultimap(
     HashingStrategies.identityStrategy()); 
multimap.put("a", "a"); 
multimap.put("a", new String("a")); 
multimap.put("a", new String("a")); 

Assert.assertEquals(3, multimap.get("a").size()); 

您也可以定義自己的HashingStrategy實現爲使用UnifiedSetWithHashingStrategyMultimap

注意:我是Eclipse集合的提交者。