Maison > Java > javaDidacticiel > Comment récupérer les clés des valeurs HashMap en Java ?

Comment récupérer les clés des valeurs HashMap en Java ?

Barbara Streisand
Libérer: 2024-12-14 08:52:11
original
270 Les gens l'ont consulté

How to Retrieve Keys from HashMap Values in Java?

Récupération des clés des valeurs HashMap

En Java, lorsque vous travaillez avec des Hashmaps, il peut y avoir des situations où vous avez une valeur et souhaitez l'obtenir sa clé correspondante. Pour ce faire, plusieurs méthodes sont disponibles.

Parcourir les entrées

L'approche la plus simple consiste à parcourir toutes les entrées du HashMap :

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;
}
Copier après la connexion

Renvoyer la première clé correspondante

Si vous avez un mappage un-à-un, vous pouvez renvoyer la première clé correspondante :

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;
}
Copier après la connexion

Utilisation des flux Java 8

Pour les utilisateurs de Java 8, vous pouvez utiliser des flux pour code plus concis :

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());
}
Copier après la connexion

Guava's BiMap

Si vous préférez utiliser Guava, pensez à utiliser son BiMap pour les cartographies bidirectionnelles :

BiMap<Token, Character> tokenToChar = 
    ImmutableBiMap.of(Token.LEFT_BRACKET, '[', Token.LEFT_PARENTHESIS, '(');
Token token = tokenToChar.inverse().get('(');
Character c = tokenToChar.get(token);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal