Die java-collection können doppelte Schlüssel
Ich versuche zu schreiben, Programm zum entfernen von doppelten Schlüssel-Wert-Paaren von ein-Wort-Liste. Allerdings, wenn Schlüssel dupliziert mit verschiedenen Wert, dass aufzeichnen erlaubt sein sollte, zu fügen. Bitte helfen Sie mir zu verstehen, Welche java-collection wäre die Lösung dieser situation.
- key1 aaaa
- key2 bbbb
- key3 cccc
- key4 dddd
- key2-bbbb - duplizieren-pair - nicht erlaubt
- key1 hhhh - duplizieren-Taste - erlaubt
- key5 gggg
- key2 nnnn
Schlüssel kann nicht dupliziert per definition. Was du redest ist aufgerufen, einen zusammengesetzten Schlüssel (aus mehreren Werten). So bedeutet dies, Sie können einen regulären anzeigen, solange Sie eine Taste, verbindet beide Werte.
InformationsquelleAutor amal | 2016-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies mit einer multimap, mit einer Reihe als Sammlung für die Werte, es ist ziemlich einfach zu machen.
Hier sind einige der Grundlagen für die Umsetzung, nicht das ganze konnte sich aber nicht vorstellen, Sie müssten mehr als das, oder vielleicht eine remove-Methode
Bearbeiten
Gerade gesehen, Sie wollte Duplikat-Paare weggeworfen zu werden, können tun, dass mit einem set, anstelle der Ausgabe einer Fehlermeldung einfach zurück gab bool um zu zeigen, wenn es schon da war oder nicht (wenn es vorhanden ist, und gibt false zurück)
InformationsquelleAutor konkked
Können Sie nicht durch das Java-collection.
Können Sie Multimap es unterstützt doppelte Schlüssel, aber es unterstützt auch doppelte Schlüssel-Wert-Paare.
Beste Lösung für Sie ist, verwenden Sie Multimap und prüfen, ob Wert bereits vorhanden, dann nicht hinzufügen.
InformationsquelleAutor sanky jain
Meines Wissens gibt es keine solche Erfassung der Umsetzung in der Standard-JRE. Allerdings scheint es werden Implementierungen in Bibliotheken von Drittanbietern.
Etwas ähnliches, können Sie einen
Map<K, List<V>>
, das ist eine Karte mit einer Liste der Werte für jeden Schlüssel.Aber ich glaube nicht, dass Sie dies brauchen. Zusammenführen Werte für doppelte Schlüssel können Sie überprüfen, ob der Schlüssel bereits vorhanden ist, bevor Sie einen neuen Schlüssel-Wert-paar in die map.
InformationsquelleAutor Stefan Dollase
Seit Guave 2.0, gibt es eine neue Karte geben, die SetMultimap, die Sie verwenden können, denke ich passt Ihre Zwecke genau. Es können doppelte Schlüssel, aber keine doppelten Schlüssel/Wert-Paaren. Finden Sie die Guave-Dokumentation.
InformationsquelleAutor Brian
Wörterbuch enthält Wörter und der Definitionen, so Schaf="wooly säugetier" ist eine gültige Zuordnung.
Jedes mal, wenn Sie bis Schafen bekommen Sie Wolle säugetier.
Wird ein array indiziert durch eine ganze Zahl und kann doppelte Werte,
Einen hash kann auch speichern Sie doppelte Werte, aber der Schlüssel muss eindeutig sein:
Einige Sprachen verwenden Punkte für Eigenschaften:
InformationsquelleAutor Arif Burhan
Ihrem Fall grundsätzlich muss eine HashMap.
Legen Sie einfach den Schlüssel als Schlüssel und den Wert als Wert in eine HashMap.
Dies ist, weil die Schlüssel auf irgendeine Weise einzigartig sein, und bei Kollision in Werte HashMap verwaltet eine verknüpfte Liste für die Speicherung all dieser kollidierenden Werte.Bei jedem Wert ist die gleiche wie bei einem früheren Wert in die verlinkte Liste, es ersetzt einfach die alte mit der neuen.
Ex.
Wie pro Ihre Anforderung :
Key1 aaaa -- gespeichert werden soll
Key1 bbbb -- gespeichert werden soll
Key1 aaaa -- sollte nicht gespeichert werden, es ist ein doppelter.
Also im Grunde hashmap speichern "aaaa" und "bbbb"Werte gegen "key1" als Schlüssel.
Später, wenn wir versuchen, die Speicherung von "aaaa" wieder gegen "key1" dann älteren gespeicherten Wert "aaaa" - wird einfach ausgetauscht werden.
Daher duplicacy der Werte wird automatisch bearbeitet von hashmap.
Daher können Sie Gebrauch machen von HashMap in Ihrem Fall.
In Ihrer Arroganz haben Sie vergessen, einen gültigen Grund für den down-vote.
HashMap
speichert keine doppelten Werte unter der gleichen Schlüssel - Sie können nur einen Eintrag pro Schlüssel; und dieser Eintrag wird ersetzt, wenn Sie einen weiteren Eintrag mit dem gleichen Schlüssel. Wenn Sie speichern möchten, werden alle Einträge für einen bestimmten Schlüssel, der Wert müsste sein, eine Sammlung, die Sie hinzufügen zu; die machen es zu einem viel mehr kompliziert zu pflegenInformationsquelleAutor rootExplorr