Classe LinkedHashSet Java : Un Guide Amical pour les Débutants

Introduction

Bonjour à vous, futurs magiciens Java ! Aujourd'hui, nous allons entamer un voyage passionnant dans le monde de Java LinkedHashSet. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code avant – je serai votre guide ami, et nous explorerons ce sujet ensemble, étape par étape.

Java - LinkedHashSet

Imaginez que vous collectionnez des autocollants uniques pour votre album, mais que vous voulez vous souvenir de l'ordre dans lequel vous les avez obtenus. C'est essentiellement ce que fait un LinkedHashSet en Java – c'est une collection qui stocke des éléments uniques (comme vos autocollants) et se souvient de l'ordre dans lequel vous les avez ajoutés. C'est cool, non ?

Plongeons dans cette collection magique pour découvrir comment elle fonctionne !

Déclaration de Classe

En Java, LinkedHashSet fait partie du package java.util. Pour l'utiliser, nous devons d'abord l'importer. Voici comment faire :

import java.util.LinkedHashSet;

Maintenant, créons notre premier LinkedHashSet :

LinkedHashSet<String> mesAutocollants = new LinkedHashSet<>();

Dans cet exemple, nous avons créé un LinkedHashSet qui stockera des objets String. La partie indique à Java quel type d'éléments notre ensemble contiendra. Vous pouvez remplacer String par n'importe quel autre type, comme Integer ou même vos propres classes personnalisées !

Paramètres

LinkedHashSet n'a pas de paramètres spécifiques propres, mais il hérite d'aujourd'hui de ses classes parentes. Les plus importants sont :

  1. initialCapacity : La capacité initiale du LinkedHashSet.
  2. loadFactor : Une mesure de la saturation du LinkedHashSet avant qu'il ne soit redimensionné.

Ne vous inquiétez pas trop de ces paramètres pour le moment. Java défini des valeurs par défaut raisonnables, donc vous n'avez pas besoin de les spécifier sauf si vous faites quelque chose de très spécifique.

Constructeurs de Classe

LinkedHashSet fournit plusieurs constructeurs. Examinons les plus courants :

  1. Constructeur par défaut :

    LinkedHashSet<String> ensemble1 = new LinkedHashSet<>();

    Cela crée un LinkedHashSet vide avec une capacité initiale par défaut (16) et un facteur de charge (0.75).

  2. Constructeur avec capacité initiale :

    LinkedHashSet<String> ensemble2 = new LinkedHashSet<>(20);

    Cela crée un LinkedHashSet vide avec une capacité initiale de 20.

  3. Constructeur avec une autre collection :

    ArrayList<String> liste = new ArrayList<>();
    liste.add("Rouge");
    liste.add("Bleu");
    LinkedHashSet<String> ensemble3 = new LinkedHashSet<>(liste);

    Cela crée un LinkedHashSet contenant tous les éléments de la collection donnée (liste dans ce cas).

Méthodes de Classe

Maintenant, examinons algumas des méthodes les plus utiles de LinkedHashSet. Je les présente dans un tableau pour une référence facile :

Méthode Description
add(E e) Ajoute l'élément spécifié à l'ensemble s'il n'est pas déjà présent
remove(Object o) Supprime l'élément spécifié de l'ensemble s'il est présent
contains(Object o) Retourne vrai si l'ensemble contient l'élément spécifié
size() Retourne le nombre d'éléments dans l'ensemble
clear() Supprime tous les éléments de l'ensemble
isEmpty() Retourne vrai si l'ensemble ne contient aucun élément

Voyons ces méthodes en action :

LinkedHashSet<String> couleurs = new LinkedHashSet<>();

// Ajout d'éléments
couleurs.add("Rouge");
couleurs.add("Vert");
couleurs.add("Bleu");
System.out.println("Couleurs : " + couleurs);  // Sortie : Couleurs : [Rouge, Vert, Bleu]

// Ajout d'un doublon (ne sera pas ajouté)
couleurs.add("Rouge");
System.out.println("Couleurs après ajout de doublon : " + couleurs);  // Sortie : Couleurs après ajout de doublon : [Rouge, Vert, Bleu]

// Vérification de l'existence d'un élément
System.out.println("Contient Jaune ? " + couleurs.contains("Jaune"));  // Sortie : Contient Jaune ? false

// Suppression d'un élément
couleurs.remove("Vert");
System.out.println("Couleurs après suppression de Vert : " + couleurs);  // Sortie : Couleurs après suppression de Vert : [Rouge, Bleu]

// Obtenir la taille
System.out.println("Nombre de couleurs : " + couleurs.size());  // Sortie : Nombre de couleurs : 2

// Vérification si l'ensemble est vide
System.out.println("L'ensemble est-il vide ? " + couleurs.isEmpty());  // Sortie : L'ensemble est-il vide ? false

// Effacement de l'ensemble
couleurs.clear();
System.out.println("Couleurs après effacement : " + couleurs);  // Sortie : Couleurs après effacement : []

Exemple d'Obtention d'un Spliterator() pour Itérer les Entrées de LinkedHashSet

Maintenant, examinons une fonctionnalité plus avancée : le Spliterator. C'est comme un itérateur surpuissant qui peut être utilisé pour le traitement parallèle. Ne vous inquiétez pas si cela semble compliqué – nous allons le garder simple !

Voici un exemple de l'utilisation de Spliterator avec LinkedHashSet :

LinkedHashSet<String> fruits = new LinkedHashSet<>();
fruits.add("Pomme");
fruits.add("Banane");
fruits.add("Cerise");
fruits.add("Dattes");

Spliterator<String> spliterator = fruits.spliterator();

// Utilisation de Spliterator pour imprimer les éléments
spliterator.forEachRemaining(fruit -> System.out.println("Fruit : " + fruit));

Ce code affichera :

Fruit : Pomme
Fruit : Banane
Fruit : Cerise
Fruit : Dattes

La méthode spliterator() retourne un Spliterator, que nous pouvons utiliser pour itérer sur notre LinkedHashSet. La méthode forEachRemaining() applique l'action donnée à chaque élément. Dans ce cas, nous imprimons chaque fruit.

Et voilà ! Vous venez de découvrir les bases de LinkedHashSet Java. N'oubliez pas, la pratique fait le maître, donc n'hésitez pas à expérimenter avec ces concepts. Essayez de créer votre propre LinkedHashSet et jouez avec ses méthodes. Avant que vous ne le sachiez, vous serez un maître de LinkedHashSet !

Bon codage, futurs stars Java ! ?

Credits: Image by storyset