Erhalte Schlüssel von HashMap in Java
Ich habe eine Hashmap in Java so:
private Map<String, Integer> team1 = new HashMap<String, Integer>();
Dann fülle ich es so:
team1.put("United", 5);
Wie bekomme ich die Schlüssel? So etwas wie: team1.getKey()
zurück "United".
InformationsquelleAutor der Frage masb | 2012-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
HashMap
enthält mehr als ein Schlüssel. Sie könnenkeySet()
man die Menge aller Schlüssel.speichern
1
mit Schlüssel"foo"
und2
mit Schlüssel"bar"
. Iteration über alle Schlüssel:drucken
"foo"
und"bar"
.InformationsquelleAutor der Antwort Matteo
Dies ist machbar, zumindest in der Theorie, wenn Sie wissen, der index:
keySet()
gibt eine Liste, so dass Sie konvertieren die Liste in ein array.Das problem ist natürlich, dass ein Satz nicht Versprechen, halten Sie Ihre Bestellung. Wenn Sie nur ein Element in Ihrem HashMap, du bist gut, aber wenn Sie mehr als das, es ist am besten, um eine Schleife über die Karte, wie die anderen Antworten getan haben.
InformationsquelleAutor der Antwort james.garriss
Überprüfen.
http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
Angenommen, Sie haben einen unterschiedlichen Wert für jede Taste, die Sie tun können, so etwas wie dieses:
Oder wenn Sie können nicht davon ausgehen, dass jede Taste verfügt über eine differente Wert:
Oder mit JDK8+
InformationsquelleAutor der Antwort Fabio F.
Können Sie abrufen, alle
Map
's-Tasten verwenden die MethodekeySet()
. Nun, wenn das, was Sie brauchen ist ein Schlüssel angesichts seiner Wertdas ist eine völlig andere Sache undMap
wird Ihnen nicht helfen; Sie bräuchten eine spezielle Datenstruktur, wieBidiMap
(eine Karte, die ermöglicht die bidirektionale suchen zwischen Schlüssel und Werte) von Apache Commons Collections - auch bewusst sein, dass verschiedene Tasten könnten abgebildet werden, um den gleichen Wert.InformationsquelleAutor der Antwort Óscar López
InformationsquelleAutor der Antwort sachin
Als würden Sie wie to get argument (
United
), für die der Wert angegeben ist (5
) Sie sollten auch mit bidirektionale Karte (z.B. von Guava: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/BiMap.html).InformationsquelleAutor der Antwort Mateusz Chromiński
Wenn Sie brauchen nur etwas zu einfach und eher eine überprüfung.
Dann können Sie die Suche für alle Schlüssel.
InformationsquelleAutor der Antwort user1541269
Kann eine Lösung sein, wenn Sie wissen, die entscheidende Stellung, konvertieren Sie die Schlüssel in einem String-array und gibt den Wert in der position:
InformationsquelleAutor der Antwort Orici
Versuchen Sie dieses einfache Programm:
InformationsquelleAutor der Antwort raman rayat
InformationsquelleAutor der Antwort Abdul Rizwan
Bekommen Schlüssel und seine Wert
e.g
Drucken: Schlüssel: United-Wert:5
Schlüssel: Barcelona-Wert:6
InformationsquelleAutor der Antwort Emmanuel R
Was ich tun werde, das ist sehr einfach, aber Verschwendung von Speicher ist die Karte die Werte mit einem Schlüssel, und tun die entgegengesetzte Zuordnung der Tasten mit einem Wert machen:
private Map<Object, Object> team1 = new HashMap<Object, Object>();
es ist wichtig, dass Sie
<Object, Object>
so können Sie anzeigenkeys:Value
undValue:Keys
wie dieseteam1.put("United", 5);
team1.put(5, "United");
Also, wenn Sie
team1.get("United") = 5
undteam1.get(5) = "United"
Aber wenn Sie eine bestimmte Methode für eines der Objekte in Paaren, die ich werde besser sein, wenn Sie eine weitere Karte:
private Map<String, Integer> team1 = new HashMap<String, Integer>();
private Map<Integer, String> team1Keys = new HashMap<Integer, String>();
dann
team1.put("United", 5);
team1Keys.put(5, "United");
und denken Sie daran, halten Sie es einfach 😉
InformationsquelleAutor der Antwort user3763927