Classe Java LinkedHashMap : Un guide convivial pour les débutants
Introduction
Bonjour à tous, futurs sorciers Java ! Aujourd'hui, nous allons entamer un voyage passionnant dans le monde de LinkedHashMap. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code avant – je serai votre guide aimable et nous explorerons ce sujet étape par étape. À la fin de ce tutoriel, vous serez étonné de combien vous avez appris !
LinkedHashMap est comme une boîte magique qui peut stocker vos articles (qu'on appelle des paires clé-valeur en programmation) dans un ordre spécifique. Imaginez que vous organisez vos livres préférés sur un étagère. Non seulement pouvez-vous rapidement trouver n'importe quel livre que vous voulez, mais vous pouvez également les conserver dans l'ordre dans lequel vous les avez ajoutés ou en fonction de la fréquence avec laquelle vous les lisez. C'est exactement ce que fait LinkedHashMap pour nos données !
Déclaration de classe
Commençons par la déclaration d'une LinkedHashMap en Java :
import java.util.LinkedHashMap;
public class MonExempleLinkedHashMap {
public static void main(String[] args) {
LinkedHashMap<String, Integer> monBookshelf = new LinkedHashMap<>();
}
}
Dans cet exemple, nous créons une LinkedHashMap appelée monBookshelf
. La partie <String, Integer>
indique à Java que nous utiliserons des clés de type String (titres de livres) et des valeurs de type Integer (peut-être le nombre de pages). Ne vous inquiétez pas si cela semble confus maintenant – nous allons le décomposer au fur et à mesure !
Paramètres
Lorsque nous travaillons avec LinkedHashMap, nous avons quelques paramètres à considérer :
- initialCapacity : C'est comme décider de la taille initiale de votre étagère.
- loadFactor : Pensez-y comme à la mesure до laquelle votre étagère peut être remplie avant qu'il vous faille une plus grande.
- accessOrder : Ça détermine si vos livres sont arrangés par ordre d'ajout ou de fréquence d'accès.
Voyons un exemple :
LinkedHashMap<String, Integer> monBookshelf = new LinkedHashMap<>(16, 0.75f, true);
Ici, nous disons que notre étagère initiale peut contenir 16 livres, nous envisagerons d'obtenir une étagère plus grande lorsque celle-ci est à 75% de sa capacité, et nous voulons organiser les livres en fonction de la fréquence à laquelle nous y accédons.
Constructeurs de classe
LinkedHashMap offre plusieurs moyens de créer notre étagère magique. Voici les principaux constructeurs :
-
LinkedHashMap()
: Crée une LinkedHashMap vide avec les paramètres par défaut. -
LinkedHashMap(int initialCapacity)
: Spécifie la capacité initiale. -
LinkedHashMap(int initialCapacity, float loadFactor)
: Spécifie à la fois la capacité initiale et le facteur de charge. -
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
: Spécifie les trois paramètres. -
LinkedHashMap(Map<? extends K, ? extends V> m)
: Crée une LinkedHashMap avec les mêmes mappages que la map spécifiée.
Essayons de créer des LinkedHashMaps en utilisant différents constructeurs :
LinkedHashMap<String, Integer> shelf1 = new LinkedHashMap<>();
LinkedHashMap<String, Integer> shelf2 = new LinkedHashMap<>(20);
LinkedHashMap<String, Integer> shelf3 = new LinkedHashMap<>(20, 0.8f);
LinkedHashMap<String, Integer> shelf4 = new LinkedHashMap<>(20, 0.8f, true);
Map<String, Integer> existingMap = new HashMap<>();
existingMap.put("Java Basics", 200);
LinkedHashMap<String, Integer> shelf5 = new LinkedHashMap<>(existingMap);
Chacun de ces créations produit une "étagère" légèrement différente en fonction de nos besoins. Java n'est-ce pas incroyablement flexible ?
Méthodes de classe
Maintenant, examinons quelques-unes des méthodes les plus couramment utilisées dans LinkedHashMap. Je les présente dans un format de tableau pour une référence facile :
Méthode | Description |
---|---|
put(K key, V value) |
Ajoute une nouvelle paire clé-valeur à la LinkedHashMap |
get(Object key) |
Récupère la valeur associée à la clé spécifiée |
remove(Object key) |
Supprime le mappage pour la clé spécifiée |
clear() |
Supprime tous les mappages de la LinkedHashMap |
size() |
Retourne le nombre de paires clé-valeur dans la LinkedHashMap |
isEmpty() |
Retourne vrai si la LinkedHashMap est vide |
containsKey(Object key) |
Retourne vrai si la LinkedHashMap contient la clé spécifiée |
containsValue(Object value) |
Retourne vrai si la LinkedHashMap contient la valeur spécifiée |
keySet() |
Retourne un ensemble de toutes les clés de la LinkedHashMap |
values() |
Retourne une collection de toutes les valeurs de la LinkedHashMap |
entrySet() |
Retourne un ensemble de toutes les paires clé-valeur de la LinkedHashMap |
Voyons quelques-unes de ces méthodes en action :
LinkedHashMap<String, Integer> monBookshelf = new LinkedHashMap<>();
// Ajout de livres à notre étagère
monBookshelf.put("Java Basics", 200);
monBookshelf.put("Data Structures", 350);
monBookshelf.put("Algorithms", 400);
// Récupération du nombre de pages pour "Java Basics"
int javaPages = monBookshelf.get("Java Basics");
System.out.println("Java Basics a " + javaPages + " pages.");
// Vérification si nous avons un livre sur Python
boolean hasPython = monBookshelf.containsKey("Python for Beginners");
System.out.println("Avons-nous un livre Python ? " + hasPython);
// Suppression du livre Algorithms
monBookshelf.remove("Algorithms");
// Impression de tous les titres de livres
for (String title : monBookshelf.keySet()) {
System.out.println("Titre du livre : " + title);
}
Ce fragment de code montre comment nous pouvons ajouter des livres à notre étagère, récupérer des informations les concernant, vérifier si nous avons certains livres, supprimer des livres et lister tous les livres que nous avons. Très pratique, non ?
Méthodes héritées
LinkedHashMap hérite également de méthodes de ses classes parentes. Voici quelques-unes des plus importantes :
Hérité de | Méthodes |
---|---|
HashMap |
clone() , compute() , computeIfAbsent() , computeIfPresent() , merge()
|
AbstractMap |
equals() , hashCode() , toString()
|
Object |
finalize() , getClass() , notify() , notifyAll() , wait()
|
Ces méthodes héritées fournissent des fonctionnalités supplémentaires qui peuvent être très utiles dans certaines situations.
Exemple de récupération d'une valeur de LinkedHashMap
Pour terminer, un exemple complet de la création d'une LinkedHashMap, l'ajout de quelques valeurs et leur récupération :
import java.util.LinkedHashMap;
public class ExempleBookshelf {
public static void main(String[] args) {
LinkedHashMap<String, Integer> monBookshelf = new LinkedHashMap<>();
// Ajout de livres à notre étagère
monBookshelf.put("Java Basics", 200);
monBookshelf.put("Data Structures", 350);
monBookshelf.put("Algorithms", 400);
// Récupération et impression des informations sur chaque livre
for (String title : monBookshelf.keySet()) {
int pages = monBookshelf.get(title);
System.out.println("Le livre '" + title + "' a " + pages + " pages.");
}
// Récupération d'un livre spécifique
String bookToFind = "Data Structures";
if (monBookshelf.containsKey(bookToFind)) {
int pages = monBookshelf.get(bookToFind);
System.out.println("\nJe l'ai trouvé ! '" + bookToFind + "' a " + pages + " pages.");
} else {
System.out.println("\nDésolé, nous n'avons pas '" + bookToFind + "' sur notre étagère.");
}
}
}
Sortie
Lorsque vous exécutez ce code, vous verrez une sortie similaire à ceci :
Le livre 'Java Basics' a 200 pages.
Le livre 'Data Structures' a 350 pages.
Le livre 'Algorithms' a 400 pages.
Je l'ai trouvé ! 'Data Structures' a 350 pages.
Et voilà ! Vous venez de créer votre propre étagère numérique en utilisant LinkedHashMap. Vous pouvez ajouter des livres, découvrir combien de pages ils contiennent et même vérifier si un livre particulier se trouve sur votre étagère. La programmation n'est-elle pas incroyable ?
N'oubliez pas, tout comme organiser une véritable étagère, plus vous pratiquerez l'utilisation de LinkedHashMap, plus vous vous sentirez à l'aise avec. N'ayez pas peur d'expérimenter et de essayer différentes choses. Bon codage, futurs experts Java !
Credits: Image by storyset