MultiKeyMap get-Methode
Möchte ich MultiKeyMap von Apache-Sammlung, da Brauch ich eine HashMap mit zwei Schlüssel und einem Wert.
Setzen Elemente ich dies tun:
private MultiKeyMap multiKey = new MultiKeyMap();
multiKey.put("key1.1", "key2.1", "value1");
Und für bekommen element ich dies tun:
String s = multiKey.get("key1.1");
Aber der String s kamen null... Wenn ich übergeben Sie die beiden Tasten so:
String s = multiKey.get("key1.1", "key2.1");
Den String s kamen mit Werten Wert1...
Wie kann ich verlängern Sie die MultiKeyMap, um den richtigen Wert wenn ich den pass nur eine der beiden Tasten?
verwenden Sie eine normale hashmap ? stackoverflow.com/q/822322/106261
InformationsquelleAutor josecampos | 2011-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie brauchen nur eine Taste, um einen Wert Sie haben, eine einfache alte HashMap.
Und für get-element können Sie dies tun:
MultiKeyMap ist erforderlich, wenn beide Schlüssel müssen vorhanden sein.
InformationsquelleAutor Peter Lawrey
Wenn Sie einen Wert angeben, der mit zwei Schlüssel, Sie gehen zu müssen die beiden Tasten, um es zu bekommen zurück. Die hash-Funktion ist nicht konzipiert, um alle möglichen Werte, die nur mit einer der beiden Tasten. Benötigen Sie vielleicht eine andere Datenstruktur, dies zu tun.
InformationsquelleAutor wespiserA
MultiKeyMap über die Verwendung von Tupeln als Schlüssel, nicht zur übereinstimmung ein Wert mehr als einen Schlüssel. Verwenden Sie eine normale Karte und legen Sie einfach Ihren Wert zweimal, mit verschiedenen Schlüsseln.
Etwas mehr Vorsicht ist erforderlich bei der Beseitigung von Werten. Wenn Sie einen Wert entfernen für den ersten key, möchten Sie automatisch entfernen Sie die anderen Tasten mit dem gleichen Wert? Wenn ja, müssen Sie entweder eine Schleife über alle Schlüssel und entfernen Sie diese mit dem gleichen Wert von der hand, die könnte ineffizient sein, oder eine Art reverse-Karte schnell zu finden-Tasten für spezifische Wert.
InformationsquelleAutor socha23
Es scheint, dass Sie gerade nicht brauchen MultiKeyMap. Sie müssen regelmäßig anzeigen. Mit ihm können Sie assoziieren den gleichen Wert mit so vielen Tasten, wie Sie wollen.
InformationsquelleAutor AlexR
Weiß ich nicht genau die Lösung für Ihr problem. Aber ich schlage vor, Sie es zu implementieren, wie:
Und siehe: Wie implementiert man eine Karte mit mehreren keys?
InformationsquelleAutor Abhishek bhutra
Kann man einfach nicht, da es nicht die Art, wie ein MultiKeyMap funktioniert. Stellen Sie den Wert mit separaten Tasten und versuchen Sie es mit den einzelnen Schlüsseln zu einer Zeit.
InformationsquelleAutor João Fernandes
Statt, die Sie verwenden können Tabelle Daten Statur von Guave.
InformationsquelleAutor Harish pranami
Ich würde vorschlagen, erstellen Sie eine separate Klasse für mehrere Schlüssel:
InformationsquelleAutor Shirin Ravash
Hier ist eine einfache MultiKeyMap Umsetzung, die für mich gearbeitet.
InformationsquelleAutor amralieg