Was ist der Unterschied zwischen HashMap und HashMultimap
Sehe ich viele Beispiele über die multimap aber nicht verstehen, warum Google Gauva ist anders?
Multimap<Integer, Set<String>> option4 = HashMultimap.create(); //Gauva
Map<Integer, Set<String>> opt = new HashMap<Integer, Set<String>>(); //Core Java
Ist sowohl oben sind, Verhalten sich dieselben zur Aufnahme von Daten-oder anders?
Lesen Sie diese Guave Wiki Seite.
Ihre erste definition entspricht nicht der zweite. Entweder der zweite sollte
Ihre erste definition entspricht nicht der zweite. Entweder der zweite sollte
Map<Integer, Set<Set<String>>>
(ich bezweifle, dass dies ist, was Sie brauchen), oder die erste sein sollte Multimap<Integer, String>
.
InformationsquelleAutor Faisal Basra | 2013-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
MultiMap<A, B>
Mitarbeiter einen Schlüssel vom Typ a mit Einem Wert vom TypCollection<B>
(daher der name MultiMap)Einen
Map<A, B>
Mitarbeiter einen Schlüssel vom Typ a mit Einem Wert von Typ B.So, ein
MultiMap<Integer, Set<String>>
kann gesehen werden, alsMap<Integer, Collection<Set<String>>
. Dies sollte offensichtlich sein, durch die Lektüre in der api-Dokumentation.InformationsquelleAutor JB Nizet
Der Unterschied ist, dass mit dem zweiten, Kern-Java-Implementierung, die Sie brauchen, um zu überprüfen, ob das Set da ist, bevor Sie einfügen. Guava ' s Multimap übernimmt das für Sie.
Mit Core Java:
Mit Guave:
Guave kümmert sich um die Initialisierung einer sonst fehlend Gesetzt, um die Werte zu speichern, kümmert sich um alle threading Probleme (zB hält zwei threads, erstellen Sie ein neues Set für den gleichen Schlüssel parallel) und bietet auch einige nützliche Methoden, die Sie würde sonst implementieren müssen, von hand, wie immer alle Werte über alle
Set
s.InformationsquelleAutor Rich
NÖ,
MultiMap
bedeutet, dass es wäre eine Sammlung von Objekten an jedem Schlüssel.Dokumentation: Multimap_Is_Not_A_Map
InformationsquelleAutor Admit
Du was falsch verstanden. Diese sind auch nicht etwa gleichwertig:
In deinem Beispiel
opt4
würde die Karte einer einzigenInteger
auf eine Sammlung von Sätzen von Saiten.Das ist genau der Punkt, der mit einem
Multimap
Sie muss nicht explizit befassen sich mit der zweiten dimension. Also in der Tat die richtige (equivalent) Erklärung wäre:und Sie können eine Landkarte anzeigen wie diese:
InformationsquelleAutor Sean Patrick Floyd
Zunächst Kom.google.common.sammeln.Multimap ist nicht java.util.Karte, es ist in einem separaten Hierarchie.
Zweitens, können Sie alle Operationen mit den
Map<Integer, Set<String>>
dass Multimap-Schnittstelle erfordert, aber Sie haben, um Sie zu implementieren selbst, während HashMultimap bietet fertige Umsetzung.InformationsquelleAutor Evgeniy Dorofeev