Comment créer une Map de paires clé-valeur en Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel vous guidera tout au long du processus de création et d'utilisation d'une structure de données Map en Java. Les Maps sont une structure de données fondamentale en Java, vous permettant de stocker et de récupérer efficacement des paires clé-valeur. À la fin de ce tutoriel, vous aurez une bonne compréhension de la création, de l'initialisation, de l'accès et de la manipulation des Maps dans vos applications Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("OOP") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/hashmap("HashMap") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/iterator("Iterator") subgraph Lab Skills java/collections_methods -.-> lab-413982{{"Comment créer une Map de paires clé-valeur en Java"}} java/classes_objects -.-> lab-413982{{"Comment créer une Map de paires clé-valeur en Java"}} java/oop -.-> lab-413982{{"Comment créer une Map de paires clé-valeur en Java"}} java/hashmap -.-> lab-413982{{"Comment créer une Map de paires clé-valeur en Java"}} java/iterator -.-> lab-413982{{"Comment créer une Map de paires clé-valeur en Java"}} end

Comprendre la structure de données Map

En Java, la structure de données Map est une collection fondamentale qui vous permet de stocker et de récupérer des paires clé-valeur. Elle fait partie du Framework de collections Java et est largement utilisée dans diverses situations de programmation.

Qu'est-ce qu'une Map ?

Une Map est un objet qui stocke une collection de paires clé-valeur. Chaque clé dans la Map doit être unique et est utilisée pour accéder à la valeur correspondante. Les valeurs dans la Map peuvent être en double, mais les clés doivent être uniques.

Pourquoi utiliser une Map ?

Les Maps sont utiles lorsque vous avez besoin d'associer un identifiant unique (la clé) à une donnée (la valeur). Cela est courant dans de nombreuses tâches de programmation, telles que :

  • La mise en cache ou les tables de recherche
  • Le comptage de la fréquence des éléments
  • Le stockage des paramètres de configuration
  • La représentation d'une table de base de données

Caractéristiques clés d'une Map

  • Paires clé-valeur : Une Map stocke une collection de paires clé-valeur, où chaque clé est unique et la valeur correspondante est associée à cette clé.
  • Clés uniques : Les clés dans une Map doivent être uniques. Si vous essayez d'ajouter une nouvelle paire clé-valeur avec une clé qui existe déjà, la nouvelle valeur remplacera l'ancienne.
  • Types hétérogènes : Les clés et les valeurs dans une Map peuvent être de différents types de données. Par exemple, vous pouvez avoir une Map<String, Integer> où les clés sont des chaînes de caractères et les valeurs sont des entiers.
  • Clés et valeurs nulles : Une Map peut avoir null comme clé ou comme valeur, selon l'implémentation spécifique.
  • Ordre vs. désordre : Différentes implémentations de Map offrent différentes garanties d'ordre pour les paires clé-valeur. Par exemple, TreeMap maintient les clés dans un ordre trié, tandis que HashMap ne garantit aucun ordre spécifique.

Comprendre les concepts et les caractéristiques de base de la structure de données Map est essentiel pour l'utiliser efficacement dans vos programmes Java.

Création et initialisation d'une Map

Déclaration d'une Map

En Java, vous pouvez déclarer une variable Map en utilisant la syntaxe suivante :

Map<KeyType, ValueType> mapName = new MapImplementation<>();

Ici, KeyType et ValueType sont respectivement les types de données de la clé et de la valeur, et MapImplementation est l'implémentation spécifique de Map que vous souhaitez utiliser, comme HashMap, TreeMap ou LinkedHashMap.

Initialisation d'une Map

Il existe plusieurs façons d'initialiser une Map en Java :

  1. Map vide :

    Map<String, Integer> emptyMap = new HashMap<>();
  2. Map avec capacité initiale :

    Map<String, Integer> mapWithInitialCapacity = new HashMap<>(16);
  3. Map avec capacité initiale et facteur de charge :

    Map<String, Integer> mapWithInitialCapacityAndLoadFactor = new HashMap<>(16, 0.75f);
  4. Map avec paires clé-valeur initiales :

    Map<String, Integer> mapWithInitialPairs = new HashMap<>() {{
        put("apple", 1);
        put("banana", 2);
        put("cherry", 3);
    }};
  5. Map à partir d'une autre Map :

    Map<String, Integer> originalMap = new HashMap<>();
    // Remplir la map originale
    Map<String, Integer> newMap = new HashMap<>(originalMap);
  6. Map à partir d'une liste de paires clé-valeur :

    List<KeyValuePair<String, Integer>> pairs = Arrays.asList(
        new KeyValuePair<>("apple", 1),
        new KeyValuePair<>("banana", 2),
        new KeyValuePair<>("cherry", 3)
    );
    Map<String, Integer> mapFromList = pairs.stream()
       .collect(Collectors.toMap(KeyValuePair::getKey, KeyValuePair::getValue));

Ce sont les façons les plus courantes de créer et d'initialiser une Map en Java. Le choix de l'implémentation et de la méthode d'initialisation dépend de vos besoins spécifiques et des caractéristiques de vos données.

Accès et manipulation des éléments d'une Map

Accès aux éléments d'une Map

Une fois que vous avez créé une Map, vous pouvez accéder à ses éléments en utilisant les méthodes suivantes :

  1. Récupération d'une valeur par clé :

    Map<String, Integer> fruitMap = new HashMap<>();
    // Remplir la map
    Integer value = fruitMap.get("apple");
  2. Vérification de l'existence d'une clé :

    boolean containsKey = fruitMap.containsKey("banana");
  3. Vérification de l'existence d'une valeur :

    boolean containsValue = fruitMap.containsValue(2);
  4. Parcours des entrées de la Map :

    for (Map.Entry<String, Integer> entry : fruitMap.entrySet()) {
        String key = entry.getKey();
        Integer value = entry.getValue();
        // Faire quelque chose avec la clé et la valeur
    }
  5. Parcours des clés de la Map :

    for (String key : fruitMap.keySet()) {
        // Faire quelque chose avec la clé
    }
  6. Parcours des valeurs de la Map :

    for (Integer value : fruitMap.values()) {
        // Faire quelque chose avec la valeur
    }

Manipulation des éléments d'une Map

Vous pouvez également modifier le contenu d'une Map en utilisant les méthodes suivantes :

  1. Ajout d'une nouvelle paire clé-valeur :

    fruitMap.put("orange", 4);
  2. Mise à jour de la valeur d'une clé existante :

    fruitMap.put("apple", 5);
  3. Suppression d'une paire clé-valeur :

    fruitMap.remove("banana");
  4. Vidage de la Map :

    fruitMap.clear();
  5. Fusion de valeurs :

    fruitMap.merge("apple", 2, Integer::sum);

Ces méthodes vous permettent d'accéder, de modifier et de manipuler efficacement les paires clé-valeur stockées dans une Map.

Résumé

Dans ce tutoriel Java, vous avez appris à créer et à utiliser les Maps, une structure de données polyvalente pour stocker et récupérer des paires clé-valeur. Vous avez exploré les différentes méthodes pour initialiser une Map, accéder et modifier ses éléments, et exploiter le potentiel des Maps dans votre programmation Java. Grâce à ces connaissances, vous pouvez désormais intégrer en toute confiance les Maps dans vos projets Java, améliorant ainsi l'efficacité et l'organisation de votre gestion des données.