2012-04-07 3 views
3

De here, j'ai trouvé que Colt et de OpenIntIntHashMap Trove TIntIntHashMap donnent de meilleures performances et de la mémoire utilise que Java construit dans HashMap ou goyave de HashMultimap.Java Hash multi carte (clé avec plusieurs valeurs) Mise en œuvre

Est-ce que le OpenIntIntHashMap de Colt ou le TIntIntHashMap de Troe autorisent des clés avec des valeurs multiples, comme avec HashMultimap? Si ce n'est pas une bonne façon de mettre en œuvre un HashMultimap qui peut atteindre les performances et l'efficacité de la mémoire de Colt ou de Trove?

Note: J'ai testé le HashMultimap de Guava, mais ses performances et son efficacité mémoire me semblent médiocres.

Répondre

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

Merci. Mais, pour utiliser cette structure, que devrais-je faire? Moyens, est-ce que Trove a un fichier .jar? – Arpssss

+0

Si vous allez sur le site de Trove et que vous allez dans la section "Téléchargements", c'est assez simple. –

+0

Merci. En fait, je télécharge trove de http://sourceforge.net/projects/trove4j/files/trove/3.0.1/. Cependant, lorsque j'ajoute un fichier trove.jar dans mon chemin de classe, cela donne une erreur que gnu.trove.set.hash.TIntHashSet (et autres) est introuvable. Pouvez-vous m'aider aimablement, comment utiliser Trove. – Arpssss