Suche wenn angegebenen Schlüssel und Wert vorhanden ist
Arbeite ich mit hashmap datastructure in java. Ich habe einige Daten, in der jeder Eintrag(Wert) hat eine Gruppe(Schlüssel). Jetzt bin ich der Speicherung dieser Daten in die hashmap wie folgt
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "value1");
map.put(1, "value2");
map.put(2, "value3");
map.put(2, "value4");
map.put(3, "value5");
map.put(3, "value6");
map.put(3, "value7");
nun möchte ich Sie auf suchen, wenn der Eintrag (mit key=3 und Wert="value6") gibt es in anzeigen oder nicht. Gibt es eine bestimmte Methode aufrufen? oder ist es, und anderen Weg, es zu tun?
Sollten Sie verwenden
Sie können keine doppelten Schlüssel in der HashMap
Wenn Sie möchten, speichern Sie mehrere Werte pro key, haben Sie einen Blick auf MultiMap in der Guava-Bibliothek.
Map<Integer, List<String>>
.Sie können keine doppelten Schlüssel in der HashMap
Wenn Sie möchten, speichern Sie mehrere Werte pro key, haben Sie einen Blick auf MultiMap in der Guava-Bibliothek.
InformationsquelleAutor navalp3 | 2013-06-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht halten, mehrere Eintritt gegen denselben Schlüssel in einer map. Wenn Ihre Karte enthielt bisher eine Zuordnung für den Schlüssel, wird der alte Wert ersetzt. Sie müssen
Wo Sie sparen könnten, Liste der string gegen den gleichen Schlüssel. und Sie können den Wert abrufen, indem Sie
map#get
InformationsquelleAutor Subhrajyoti Majumder
Können Sie Gebrauch machen von Guave Multimap (API-docs)
Seine speichert mehrere Werte gegen einen Schlüssel.
Für Ihren Fall ,
Dadurch wird die Daten-Struktur für Sie
Für die Suche
verwenden multimap#containsEntry(Schlüssel,Wert), die Rückkehr
boolean
Ergebnis basiert auf dem Ergebnisdaher
wird wieder
true
InformationsquelleAutor ajduke
Ihre Schlüssel enthält nur den letzten Wert, der u
put()
für einen bestimmten Schlüssel, da die Werte überschrieben werden, die für jede Taste und nur der zuletzt eingegebene Wert gespeichert ist gegen die Schlüssel in derEntry
Objekt.Wie pro Ihre code-Karte enthält die Schlüssel-Wert-Paare in folgender form:
So,
value6
nicht mehr zu existieren.InformationsquelleAutor Jatin Sehgal
Im weitesten Sinne:
gekennzeichnet.get(key)
abrufen wird entweder der Wert in diesem Registrierungsschlüssel, odernull
wenn es nicht vorhanden ist.Zweiten, bist du eigentlich Brech deine Werte. Maps immer nur store einen Wert pro Schlüssel. Wenn Sie möchten, um mehrere Werte speichern, erwägen Sie die Verwendung einer anderen Sammlung als der Wert, mit dem Sie hinzufügen können Werte in einem späteren Zeitpunkt.
Hier einige Beispiel-code:
Bestimmung der Existenz eines Wertes zu einem bestimmten Schlüssel wird das auch ganz einfach:
InformationsquelleAutor Makoto
Sieht aus wie Sie eine Menge von Paaren statt Karte.
Set ist Bibliothek-Klasse. Sie können HashSet zum Beispiel.
Paar nicht. Sie können http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/tuple/Pair.html
So,
InformationsquelleAutor Mikhail Peresypkin
map speichert nur die eindeutigen Schlüssel und die Sie gespeichert haben 3 Schlüssel und value6 als Wert dann wieder 3 als Schlüssel-und value7 als Wert, dann wird Ihre Karte enthält nur 3 als Schlüssel-und value7 als Wert value6 ersetzt werden
InformationsquelleAutor shreyansh jogi