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
Freigeben: 2024-12-14 08:52:11
Original
271 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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());
}
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage