# Classe Java LinkedList : Guide pour Débutants

## Introduction

Salut les futurs magiciens Java ! Aujourd'hui, nous allons embarquer dans un voyage passionnant dans le monde de Java LinkedList. Ne vous inquiétez pas si vous êtes nouveau dans la programmation - je serai votre guide amical, et nous explorerons ce sujet étape par étape. À la fin de ce tutoriel, vous linkerez des listes comme un pro !

Imaginez que vous organisiez une ligne de conga à une fête. Chaque personne tient les épaules de la personne devant elle, formant une chaîne. C'est essentiellement ce qu'est un LinkedList en Java - une chaîne d'éléments, chacun connecté au suivant. C'est un moyen amusant et flexible de stocker et gérer des données !

## Déclaration de Classe

Commençons par les bases. En Java, la classe LinkedList fait partie du package java.util. Voici comment nous la déclarons :

```java
import java.util.LinkedList;

public class ExempleLinkedList {
    public static void main(String[] args) {
        LinkedList<String> invitésFête = new LinkedList<>();
    }
}

Dans cet exemple, nous créons un LinkedList appelé invitésFête qui stockera des Strings (noms de nos invités). La partie <String> est ce que nous appelons un "générique" - il spécifie le type d'éléments que notre liste contiendra.

Java - LinkedList

Paramètres

LinkedList en Java est une classe générique, ce qui signifie qu'elle peut travailler avec différents types de données. Le paramètre de type <E> représente le type d'éléments dans la liste. Dans notre exemple de fête, E serait String.

Champ

LinkedList n'a pas de champs publics. Toute son mécanique interne est encapsulée (un mot pompeux pour "caché") à l'intérieur de la classe. C'est une bonne pratique dans la programmation orientée objet - c'est comme garder la cuisine désordonnée cachée tout en servant un délicieux repas dans la salle à manger !

Constructeurs de Classe

LinkedList fournit deux constructeurs :

  1. LinkedList(): Crée une liste vide.
  2. LinkedList(Collection<? extends E> c): Crée une liste contenant les éléments de la collection spécifiée.

Voyons-les en action :

LinkedList<String> fêteVide = new LinkedList<>(); // Liste vide
LinkedList<String> invitésVip = new LinkedList<>(Arrays.asList("Alice", "Bob", "Charlie")); // Liste avec des éléments initiaux

Méthodes de Classe

LinkedList est fourni avec un trésor de méthodes utiles. Voici quelques-unes des plus couramment utilisées :

Méthode Description
add(E element) Ajoute un élément à la fin de la liste
add(int index, E element) Ajoute un élément à la position spécifiée
addFirst(E element) Ajoute un élément au début de la liste
addLast(E element) Ajoute un élément à la fin de la liste
remove(Object o) Supprime la première occurrence de l'élément spécifié
remove(int index) Supprime l'élément à la position spécifiée
get(int index) Retourne l'élément à la position spécifiée
set(int index, E element) Remplace l'élément à la position spécifiée
size() Retourne le nombre d'éléments dans la liste
clear() Supprime tous les éléments de la liste

Méthodes Héritées

LinkedList hérite de méthodes de plusieurs interfaces et classes, y compris Collection, Deque, List, et AbstractSequentialList. Cela signifie qu'il peut faire beaucoup plus que ce que nous avons couvert ici !

Exemple d'ajout d'éléments à un LinkedList

Mettons notre connaissance en pratique avec un exemple amusant :

import java.util.LinkedList;

public class PlanificateurDeFêtes {
    public static void main(String[] args) {
        LinkedList<String> invitésFête = new LinkedList<>();

        // Ajout d'invités à notre fête
        invitésFête.add("Alice");
        invitésFête.addLast("Bob");
        invitésFête.addFirst("Charlie");
        invitésFête.add(1, "David");

        System.out.println("Liste des invités : " + invitésFête);

        // Oups, Bob ne peut pas venir
        invitésFête.remove("Bob");

        // Ajout d'un invité VIP
        invitésFête.addFirst("Eve");

        System.out.println("Liste des invités mise à jour : " + invitésFête);
        System.out.println("Nombre d'invités : " + invitésFête.size());
    }
}

Sortie

Lorsque vous exécutez ce code, vous verrez :

Liste des invités : [Charlie, David, Alice, Bob]
Liste des invités mise à jour : [Eve, Charlie, David, Alice]
Nombre d'invités : 4

Décomposons ce qui s'est passé :

  1. Nous avons commencé avec une liste d'invités vide.
  2. Nous avons ajouté Alice à la fin, Bob à la fin, Charlie au début, et avons glissé David à la deuxième position.
  3. Nous avons imprimé notre liste d'invités initiale.
  4. Bob n'a pas pu venir, donc nous l'avons supprimé.
  5. Nous avons ajouté Eve en tant qu'invité VIP au début de la liste.
  6. Nous avons imprimé notre liste mise à jour et le nombre total d'invités.

Voyez combien LinkedList est flexible ? Nous pouvons ajouter et supprimer des éléments de n'importe quelle position facilement !

En conclusion, LinkedList est un outil puissant et flexible en Java. C'est comme avoir une liste magique d'invités pour votre fête de codage - vous pouvez ajouter ou supprimer des invités n'importe où dans la ligne avec facilité ! Souvenez-vous, la pratique fait le parfait, donc n'hésitez pas à expérimenter avec différentes méthodes et à créer vos propres exemples de LinkedList. Bon codage, et que vos listes soient toujours parfaitement liées !

Credits: Image by storyset