Ich habe eine HashMap
mit verschiedenen Schlüsseln und Werten, wie kann ich einen Wert herausholen?
Ich habe einen Schlüssel in der Karte my_code
, der eine Zeichenfolge enthalten soll. Wie kann ich das einfach erhalten, ohne die Karte durchlaufen zu müssen?
Bisher habe ich ..
HashMap newMap = new HashMap(paramMap);
String s = newMap.get("my_code").toString();
Ich erwarte ein String
, wie "ABC" oder "DEF", wie ich es anfangs dort eingegeben habe, aber wenn ich ein mache, System.out.println()
bekomme ich so etwas wiejava.lang.string#F0454
Entschuldigung, ich bin mit Karten nicht allzu vertraut, wie Sie wahrscheinlich erraten können;)
quelle
Wenn Sie Schlüssel / Werte als Zeichenfolgen speichern, funktioniert dies wie folgt:
Die Frage ist, was in der HashMap ausgefüllt wird (Schlüssel & Wert)
quelle
Wenn Sie Generika verwenden und Ihre Karte als definieren
dann Abrufen des Wertes als
Sie müssen weder map.get () typisieren noch die toString-Methode aufrufen, um den String-Wert abzurufen
quelle
Ihre Frage ist leider überhaupt nicht klar. Ein Schlüssel hat keinen "Namen". Was die Karte betrifft, wird es nicht "genannt" - es ist nur ein Schlüssel und wird mit anderen Schlüsseln verglichen. Wenn Sie viele verschiedene Arten von Schlüsseln haben, empfehle ich Ihnen dringend, diese aus Gründen der Vernunft in verschiedene Karten einzutragen.
Wenn dies nicht hilft, klären Sie bitte die Frage - vorzugsweise mit einem Code, um zu zeigen, was Sie meinen.
quelle
map.get(myCode)
quelle
Ein wichtiger Punkt, der hier zu beachten ist, ist, dass wenn Ihr Schlüssel ein Objekt einer benutzerdefinierten Klasse in Java ist, es ein Punkt ist, die Methode equals zu überschreiben. Weil die HashMap.get-Methode (Objektschlüssel) die equals-Methode zum Abgleichen des Schlüsselwerts verwendet. Wenn Sie die Methode equals nicht überschreiben, wird versucht, den Wert einfach anhand der Referenz des Schlüssels und nicht anhand des tatsächlichen Werts des Schlüssels zu ermitteln. In diesem Fall wird immer eine Null zurückgegeben.
quelle
Angenommen, Sie haben HashMap wie folgt deklariert:
Dann ist der Schlüssel in der Karte vom Typ Zeichendatentyp und der Wert vom Typ int. Um nun einen Wert zu erhalten, der dem Schlüssel entspricht, unabhängig vom Schlüsseltyp, Werttyp und Syntax, gilt Folgendes: -
Entsprechend Ihrer Frage möchten Sie einen Zeichenfolgenwert erhalten, der einem Schlüssel entspricht. Deklarieren Sie dazu einfach HashMap als HashMap <"Datentyp des Schlüssels", "Datentyp des Werts" hs = new HashMap <> (); Wenn Sie dies verwenden, wird Ihr Code sauberer und Sie müssen das Ergebnis von hs.get ("my_code") nicht in einen String konvertieren, da standardmäßig der Wert des Strings zurückgegeben wird, wenn zum Zeitpunkt der Eingabe der Wert als String beibehalten wurde.
quelle
Dies ist ein weiteres Beispiel für die Verwendung der Funktionen keySet (), get (), values () und entrySet (), um Schlüssel und Werte in einer Map abzurufen:
quelle
Sie können die Methode get (Objektschlüssel) aus der HashMap verwenden. Beachten Sie, dass Ihre Schlüsselklasse in vielen Fällen die Methode equals überschreiben sollte, um eine nützliche Klasse für einen Map-Schlüssel zu sein.
quelle
Der dem Schlüssel zugeordnete Wert
4
istDD
quelle