Heim >Java >javaLernprogramm >Wie rufe ich Schlüssel aus HashMap-Werten in Java ab?

Wie rufe ich Schlüssel aus HashMap-Werten in Java ab?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 08:52:11275Durchsuche

How to Retrieve Keys from HashMap Values in Java?

Abrufen von Schlüsseln aus HashMap-Werten

In Java kann es bei der Arbeit mit Hashmaps zu Situationen kommen, in denen Sie einen Wert haben und diesen erhalten möchten den entsprechenden Schlüssel. Um dies zu erreichen, stehen mehrere Methoden zur Verfügung.

Schleife durch Einträge

Der einfachste Ansatz besteht darin, alle Einträge in der HashMap zu durchlaufen:

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;
}

Zurückgeben des ersten passenden Schlüssels

Wenn Sie einen haben Bei der Eins-zu-Eins-Zuordnung können Sie den ersten passenden Schlüssel zurückgeben:

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;
}

Verwenden von Java 8-Streams

Für Java 8-Benutzer können Sie Streams für verwenden prägnanterer Code:

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

Wenn Sie lieber Guava verwenden möchten, sollten Sie dessen BiMap für bidirektionale Zuordnungen in Betracht ziehen:

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 HashMap-Werten in Java ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn