2012-04-07 30 views
3

here,我發現,Colt的OpenIntIntHashMap和特羅韋的TIntIntHashMap提供更好的性能和內存比Java內置的HashMap或番石榴的HashMultimap使用。Java的哈希多地圖(有多個值鍵)執行

Do Colt的OpenIntIntHashMap或Trove的TIntIntHashMap允許具有多個值的鍵,如HashMultimap?如果不是什麼是實現可以實現Colt或Trove性能和內存效率的HashMultimap的好方法?

注意:我已經測試過Guava的HashMultimap,但其性能和內存效率對我來說似乎很差。

回答

5
Multimaps.newSetMultimap(
    TDecorators.wrap(new TIntObjectHashMap<Collection<Integer>>()), 
    new Supplier<Set<Integer>>() { 
    public Set<Integer> get() { 
     return TDecorators.wrap(new TIntHashSet()); 
    } 
    }); 
+0

謝謝。但是,爲了使用這種結構,我該怎麼做?意思是,Trove有任何.jar文件? – Arpssss 2012-04-07 16:33:56

+0

如果您訪問Trove網站並轉到「下載」部分,它非常簡單。 – 2012-04-07 16:36:50

+0

謝謝。其實,我從http://sourceforge.net/projects/trove4j/files/trove/3.0.1/下載trove。但是,當我在我的類路徑中添加trove.jar文件時,它會報錯,找不到gnu.trove.set.hash.TIntHashSet(和其他)。你能否幫助我,如何使用Trove。 – Arpssss 2012-04-07 17:19:37