MultiMap vs Mehrwertigen Anzeigen
An einer Stelle habe ich eine Karte mit vielen Werten zugeordnet, um einen einzelnen Schlüssel, so Frage ich mich, ob es eine erhebliche performance-Unterschied zwischen der Verwendung HashMap der Schlüssel-Liste und MultiMap der Schlüssel , Werte in java.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können es versuchen, aber ich bezweifle es wird viel Unterschied, wie es das tut viel die gleiche Sache.
IMHO Der Vorteil ist einfacher/übersichtlicher code, die ist meist wichtiger als Leistung.
Ich würde empfehlen die Verwendung von google-Sammlungen wenn Sie möchten, verwenden Sie eine mehr bequeme Durchführung einer Multimap. Falls Sie nicht möchten, dass die Einführung einer neuen Abhängigkeit, die
HashMap<Key, Collection<Value>>
sollten den trick tun, das ist ziemlich viel, was apache.Sammlungen HashMultiMap tut.Wenn es eine Karte ist Schlüssel-> Werte, verwenden Sie einen Map-Implementierung.
Da haben Sie einige Werte mit dem gleichen Schlüssel, verwenden Sie die http://guava-libraries.googlecode.com/svn/tags/release09/javadoc/com/google/common/collect/HashMultiset.html aus der Google-Sammlung (jetzt guava-Bibliothek, http://code.google.com/p/guava-libraries/ ) für Ihre Aufgabe.
Hash liefert O(1) - das ist schnell und hat nichts mit der Größe der Elemente.
Bezug auf Multimap, könnten Sie setzen Werte in den abhängigen collection (List, Set). Verschiedene collection-Implementierungen bietet verschiedene Leistung.
EDIT: Wie ich sagte Sebastians Antwort. Sie verwenden könnte, Guave, verschiedene Wert-Sammlung implemantions:
HashMultiMap (HashMap<KEY, HashSet<VALUE>>)
,ArrayListMultiMap (HashMap<KEY, ArrayList<VALUE>>)
...