Heim >Java >javaLernprogramm >Wie rufe ich Schlüssel aus Werten in einer Java HashMap ab?
Abrufen von Schlüsseln aus Werten in Java-Hashmaps
In einer Java-HashMap kann das Abrufen des Schlüssels, der einem bestimmten Wert entspricht, in verschiedenen Szenarien nützlich sein . Hier finden Sie eine umfassende Erläuterung, wie Sie diese Aufgabe erfüllen können:
Schleifenbasierter Ansatz:
Die traditionelle Methode zum Erhalten des Schlüssels aus einem Wert besteht darin, die HashMaps zu durchlaufen Einträge. Vergleichen Sie für jeden Eintrag den Wert mit dem gewünschten. Wenn eine Übereinstimmung gefunden wird, kann der entsprechende Schlüssel abgerufen werden.
public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) { Set<T> keys = new HashSet<>(); for (Entry<T, E> entry : map.entrySet()) { if (Objects.equals(value, entry.getValue())) { keys.add(entry.getKey()); } } return keys; }
Schlüsselabruf für Eins-zu-Eins-Zuordnungen:
In Szenarien, in denen jeder Wert zugeordnet ist Auf nur einen Schlüssel kann der schleifenbasierte Ansatz vereinfacht werden, um den ersten übereinstimmenden Schlüssel zurückzugeben.
public static <T, E> T getKeyByValue(Map<T, E> map, E value) { for (Entry<T, E> entry : map.entrySet()) { if (Objects.equals(value, entry.getValue())) { return entry.getKey(); } } return null; }
Java 8 Stream-Ansatz:
Für Benutzer von Java 8 und höher können Stream-Operationen eine prägnante Möglichkeit zum Abrufen von Schlüsseln bieten.
public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) { return map.entrySet() .stream() .filter(entry -> Objects.equals(entry.getValue(), value)) .map(Map.Entry::getKey) .collect(Collectors.toSet()); }
Guava's BiMap:
Alternativ kann für Benutzer der Guava-Bibliothek die BiMap-Datenstruktur besonders nützlich sein. Es bietet eine bidirektionale Zuordnung zwischen Schlüsseln und Werten und ermöglicht so einen effizienten Abruf von Schlüsseln und Werten.
BiMap<Token, Character> tokenToChar = ImmutableBiMap.of(Token.LEFT_BRACKET, '[', Token.LEFT_PARENTHESIS, '('); Token token = tokenToChar.inverse().get('('); Character c = tokenToChar.get(token);
Das obige ist der detaillierte Inhalt vonWie rufe ich Schlüssel aus Werten in einer Java HashMap ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!