Java - Interface Map
Bienvenue, futurs développeurs Java ! Aujourd'hui, nous plongeons dans un des composants les plus polyvalents et puissants du framework Collections de Java : l'interface Map. En tant que votre enseignant de science informatique de quartier, je suis excité de vous guider dans cette aventure. Alors, prenez votre boisson favorite, asseyez-vous confortablement, et embarquons dans cette aventure ensemble !
Qu'est-ce qu'une Map ?
Imaginez que vous organisez une bibliothèque immense. Vous voulez trouver rapidement des livres sans avoir à chercher sur chaque étagère. C'est là que la Map devient utile dans le monde de la programmation. Une Map est comme un bibliothécaire magique qui peut localiser instantanément n'importe quel livre que vous lui demandez.
En Java, une Map est un objet qui stocke des paires de clé-valeur. Chaque clé est associée à une valeur spécifique, tout comme un titre de livre (clé) est associé à son emplacement dans la bibliothèque (valeur).
Caractéristiques clés de Map
- Chaque clé doit être unique
- Chaque clé peut mapper au maximum une valeur
- Parfait pour les recherches rapides et la récupération des données
Méthodes de l'Interface Map
Jetons un coup d'œil à quelques-unes des méthodes les plus couramment utilisées dans l'interface Map :
Méthode | Description |
---|---|
put(K key, V value) |
Ajoute une paire clé-valeur à la map |
get(Object key) |
Retourne la valeur associée à la clé spécifiée |
remove(Object key) |
Supprime la paire clé-valeur associée à la clé spécifiée |
clear() |
Supprime toutes les paires clé-valeur de la map |
size() |
Retourne le nombre de paires clé-valeur dans la map |
isEmpty() |
Retourne true si la map ne contient aucune paire clé-valeur |
containsKey(Object key) |
Retourne true si la map contient la clé spécifiée |
containsValue(Object value) |
Retourne true si la map contient la valeur spécifiée |
keySet() |
Retourne un Set de toutes les clés de la map |
values() |
Retourne une Collection de toutes les valeurs de la map |
entrySet() |
Retourne un Set de toutes les paires clé-valeur de la map |
Classes qui implémentent Map
Java fournit plusieurs classes qui implémentent l'interface Map. Jetons un coup d'œil aux trois plus couramment utilisées :
1. HashMap
HashMap est comme un bibliothécaire rapide qui peut trouver n'importe quel livre en un clin d'œil mais ne se soucie pas de l'ordre des livres.
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
ages.put("Charlie", 35);
System.out.println(ages.get("Bob")); // Output: 30
Dans cet exemple, nous créons une HashMap pour stocker les âges des personnes. La clé est le nom de la personne (une chaîne de caractères), et la valeur est leur âge (un Integer).
2. TreeMap
TreeMap est comme un bibliothécaire qui garde tous les livres triés alphabétiquement par leurs titres.
Map<String, String> capitals = new TreeMap<>();
capitals.put("USA", "Washington D.C.");
capitals.put("France", "Paris");
capitals.put("Japan", "Tokyo");
for (String country : capitals.keySet()) {
System.out.println(country + ": " + capitals.get(country));
}
Ce code affichera les pays et leurs capitales dans l'ordre alphabétique des noms des pays :
France: Paris
Japan: Tokyo
USA: Washington D.C.
3. LinkedHashMap
LinkedHashMap est comme un bibliothécaire qui se souvient de l'ordre dans lequel les livres ont été ajoutés à la bibliothèque.
Map<String, Double> prices = new LinkedHashMap<>();
prices.put("Apple", 0.99);
prices.put("Banana", 0.59);
prices.put("Cherry", 3.99);
for (Map.Entry<String, Double> entry : prices.entrySet()) {
System.out.println(entry.getKey() + ": $" + entry.getValue());
}
Cela affichera les fruits et leurs prix dans l'ordre dans lequel ils ont été ajoutés :
Apple: $0.99
Banana: $0.59
Cherry: $3.99
Interfaces qui étendent Map
L'interface Map a deux sous-interfaces principales :
- SortedMap
- NavigableMap
Ces interfaces ajoutent des fonctionnalités supplémentaires pour travailler avec des maps triées. TreeMap implémente les deux de ces interfaces.
Exemples de l'Interface Map
Jetons un coup d'œil à quelques exemples pratiques pour solidifier notre compréhension :
Exemple 1 : Suivi des notes des étudiants
Imaginez que nous construisons un système pour suivre les notes des étudiants :
Map<String, Integer> studentGrades = new HashMap<>();
// Ajout des notes des étudiants
studentGrades.put("Alice", 95);
studentGrades.put("Bob", 80);
studentGrades.put("Charlie", 85);
// Mise à jour d'une note
studentGrades.put("Bob", 82);
// Récupération d'une note
System.out.println("La note d'Alice : " + studentGrades.get("Alice"));
// Vérification si un étudiant existe
if (studentGrades.containsKey("David")) {
System.out.println("La note de David : " + studentGrades.get("David"));
} else {
System.out.println("David n'est pas dans le système.");
}
// Affichage de toutes les notes des étudiants
for (Map.Entry<String, Integer> entry : studentGrades.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
Cet exemple demonstrates l'ajout, la mise à jour, la récupération et l'itération sur les entrées dans une Map.
Exemple 2 : Compteur de fréquence des mots
Créons un programme qui compte la fréquence des mots dans une phrase :
String sentence = "the quick brown fox jumps over the lazy dog";
String[] words = sentence.split(" ");
Map<String, Integer> wordFrequency = new HashMap<>();
for (String word : words) {
if (wordFrequency.containsKey(word)) {
wordFrequency.put(word, wordFrequency.get(word) + 1);
} else {
wordFrequency.put(word, 1);
}
}
for (Map.Entry<String, Integer> entry : wordFrequency.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
Ce programme.split la phrase en mots, puis compte combien de fois chaque mot apparaît, stockant les résultats dans une Map.
Conclusion
Félicitations ! Vous avez刚刚 pris vos premiers pas dans le monde de l'interface Map de Java. Nous avons couvert les bases, exploré différentes implémentations, et même abordé quelques exemples pratiques. Souvenez-vous, comme tout bon bibliothécaire, une Map vous aide à organiser et à récupérer des informations efficacement.
Alors que vous continuez votre parcours en Java, vous trouverez des Maps apparaissant partout, des programmes simples aux applications complexes. Elles sont un outil essentiel dans l'arsenal de tout développeur Java.
Continuez à pratica
Credits: Image by storyset