Retour au cours

Travailler avec l'interface Map (HashMap, TreeMap)

Maîtrise de Java : De Zéro à Développeur Professionnel (Un parcours en 50 leçons)

Leçon 39 : Travailler avec l'interface Map

Une Map est une collection utilisée pour stocker des données sous forme de paires clé-valeur. Elle fournit un moyen efficace de récupérer une valeur à partir de sa clé unique.

1. Caractéristiques clés des Maps

  • Chaque clé doit être unique.
  • Les valeurs peuvent être des doublons.
  • Les clés sont utilisées pour la recherche ; les valeurs sont les données stockées.

2. HashMap

  • Implémentation : Utilise une table de hachage.
  • Performance : Très rapide (O(1)) pour les opérations put, get et remove, en supposant de bonnes clés.
  • Ordre : Aucun ordre garanti.

java import java.util.HashMap; import java.util.Map;

// Map<Type Clé, Type Valeur> Map<String, Integer> studentAges = new HashMap<>();

// Ajouter des éléments studentAges.put("Charlie", 22); studentAges.put("Mia", 24); studentAges.put("Ben", 22); // Les valeurs peuvent être dupliquées studentAges.put("Charlie", 23); // La clé doit être unique, remplace l'ancienne valeur (22 -> 23)

// Récupérer des éléments System.out.println("Âge de Mia : " + studentAges.get("Mia")); // Sortie : 24 System.out.println(studentAges.containsKey("Ben")); // true

3. Parcourir une Map

Les Maps ne peuvent pas être parcourues directement. Vous devez obtenir l'une de ces trois vues :

  1. Key Set : Utilisez map.keySet() pour obtenir un Set de toutes les clés.
  2. Values : Utilisez map.values() pour obtenir une Collection de toutes les valeurs.
  3. Entry Set : Utilisez map.entrySet() pour obtenir un Set d'objets Map.Entry<K, V> (le plus efficace pour accéder simultanément à la clé et à la valeur).

java for (Map.Entry<String, Integer> entry : studentAges.entrySet()) { System.out.println(entry.getKey() + " a " + entry.getValue() + " ans"); }

4. TreeMap

  • Stocke les clés dans leur ordre de tri naturel (ou en utilisant un Comparator).
  • Plus lent que HashMap (O(log N)) mais permet une itération triée.