Maison  >  Article  >  Java  >  Comment stocker et récupérer plusieurs valeurs associées à la même clé dans un HashMap ?

Comment stocker et récupérer plusieurs valeurs associées à la même clé dans un HashMap ?

DDD
DDDoriginal
2024-10-25 10:04:02975parcourir

How can you store and retrieve multiple values associated with the same key in a HashMap?

HashMap : Gérer plusieurs valeurs pour une seule clé

Question :

Est-ce possible stocker et récupérer plusieurs valeurs associées à la même clé dans un HashMap ? Si oui, comment puis-je accéder à la troisième valeur de la première clé ?

Réponse :

Bien qu'un HashMap standard ne puisse pas stocker les clés en double, il est possible d'implémenter un Structure de type HashMap qui autorise plusieurs valeurs pour une seule clé à l'aide d'une carte de liste. Voici une solution Java simple :

<code class="java">import java.util.HashMap;
import java.util.ArrayList;

public class MultiValueMapDemo {

    public static void main(String[] args) {
        // Create a Map of List to store key-value pairs
        Map<Object, ArrayList<Object>> multiMap = new HashMap<>();

        // Add key-value pairs
        multiMap.computeIfAbsent("keyA", k -> new ArrayList<>()).add("value1");
        multiMap.computeIfAbsent("keyA", k -> new ArrayList<>()).add("value2");
        multiMap.computeIfAbsent("keyA", k -> new ArrayList<>()).add("value3");

        // Get the third value for the first key
        Object thirdValue = multiMap.get("keyA").get(2);

        System.out.println("Third value for keyA: " + thirdValue);
    }
}</code>

Cette approche crée un HashMap où les valeurs associées à une clé sont stockées dans une liste. Pour accéder à une valeur spécifique, vous pouvez utiliser la méthode get() sur l'objet List récupéré du HashMap. Dans cet exemple, la troisième valeur de la clé "keyA" est accessible à l'aide de multiMap.get("keyA").get(2).

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!

Déclaration:
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