Mehrere Werte für einen Schlüssel in einer HashMap in Java
Ist es möglich, dass mehrere Werte für einen Schlüssel in einer HashMap? Wenn ja, wie?
zum Beispiel durch speichern von container-Typ, wie
mögliche Duplikate von HashMap: mit Einem Schlüssel mehrere Werte
List
als Wert.mögliche Duplikate von HashMap: mit Einem Schlüssel mehrere Werte
InformationsquelleAutor Anand | 2012-09-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, dies wird als Verkettung bezeichnet. Möchten Sie vermeiden Verkettung so viel wie möglich, vor allem, wenn die Größe der Kette beginnt die Erhöhung. Länger der Kette Größe begegnen der ganze Zweck der Verwendung eines hash-Struktur, denn das Ziel ist so nahe wie möglich kommen, um O(1) möglich.
Nette Antwort....
wie bekomme ich die Werte von "Liste" für die Taste "Key1"
InformationsquelleAutor rizalp1
Könnten Sie geben einen Schuss auf Guava-Bibliothek (ehemaligen Google-Sammlungen). Es hat Implementierungen von Multimaps, die mehrere Werte speichern kann für eine einzelne Taste.
Beispielsweise ListMultimap - Implementierungen erlauben doppelte Schlüssel/Wert-Paare, die gehalten werden, in der insertion order.
Hier ist, wie würden Sie es verwenden:
Ein weiteres cooles Beispiel wäre SetMultimap, die sehr ähnlich zu ListMultimap außer, dass die Werte nach einem Schlüssel gehalten werden, in einem set. (Aus der Sicht der Nutzer, ich weiß nicht, wie genau es umgesetzt wird.)
InformationsquelleAutor Ivan Koblik
Verwenden
Map<String, List<String>>
.Set
. Oder einfach nur alte array.InformationsquelleAutor Eng.Fouad
Streng genommen, keine.
Aber! Sie können so Ihren Wert, eine Art von
Collection
verwenden, um zu speichern, wie viele Werte, wie Sie möchten.InformationsquelleAutor Argyle
Ja, aber nur, wenn die Wert-Typ gespeichert, die in Ihrem
Map
ist ein array oder eine Liste:Map<String, List<String>> myMap
oder
Map<String, String[]> myMap
Aber es ist in der Regel eine schlechte Praxis aufzubauen generische Daten-Strukturen innerhalb generische Daten-Strukturen.
Warum schreiben Sie nicht einen domain-spezifische Klasse, die umschließt die
HashMap
, und macht es einfacher für Sie, um zu überprüfen, für die Existenz eines Wertes, die Anzahl der Artikel pro key, etc?InformationsquelleAutor Craig Otis