Itérer à travers une LinkedList en Java

Rashmi Patidar 12 octobre 2023
  1. Parcourez la LinkedList à l’aide de la boucle for en Java
  2. Parcourez la LinkedList à l’aide de la boucle for améliorée en Java
  3. Parcourez la LinkedList en utilisant la boucle while
  4. Itérer la LinkedList à l’aide de la classe Iterator en Java
  5. Itérer la LinkedList à l’aide de Streams Java 8
Itérer à travers une LinkedList en Java

Une liste chaînée est une collection linéaire et ordonnée d’éléments de données. La disposition des éléments est à des emplacements omniprésents ou aléatoires dans la mémoire. La structure de données de la LinkedList est connectée à l’aide de nœuds. Le Node contient le champ de données et le lien de référence qui sont les emplacements mémoire de l’élément suivant de la séquence.

Nous stockons les éléments de la LinkedList dans des emplacements mémoire non contigus et le dernier nœud contient un pointeur vers la référence nulle.

Il existe de nombreuses façons d’itérer sur une liste chaînée. Voici quelques moyens mentionnés ci-dessous.

Parcourez la LinkedList à l’aide de la boucle for en Java

La classe LinkedList est instanciée à l’aide du mot-clé new dans l’exemple de code ci-dessous. La méthode add() de la classe LinkedList ajoute un élément à la liste. La méthode add ajoute l’élément spécifié à la fin de cette liste. Cette méthode est équivalente à la méthode addLast. La méthode renvoie true lorsque l’élément est ajouté avec succès à la liste.

Après la création de la liste, nous utilisons la boucle for pour l’itération dessus. Dans le code ci-dessous, int i=0 est une instanciation de la variable compteur. Utilisez une condition indiquant que la variable doit être inférieure à la taille de la liste. Et la taille de la liste est calculée à l’aide de la méthode size(). Enfin, la valeur de la variable augmente de un. Ce processus complet s’exécutera jusqu’à ce que la valeur de la variable devienne supérieure à la taille de la liste.

package linkedList;

import java.util.LinkedList;

public class IterateLinkedListUsingForLoop {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    System.out.println("Iterating the list using for-loop");
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
  }
}

Le programme ci-dessus génère la sortie comme indiqué ci-dessous.

Iterating the list using for-loop
First
Second

Parcourez la LinkedList à l’aide de la boucle for améliorée en Java

La boucle for améliorée est également appelée boucle for-each et est un type de la boucle for.

Dans le code ci-dessous, nous devons instancier un objet de LinkedList. Ensuite, devrait y ajouter des éléments (par exemple des objets String). Maintenant pour l’itération, nous utiliserons for-each dans ce cas.

package linkedList;

import java.util.LinkedList;

public class IteratingLinkedListUsingForEach {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    for (String temp : list) {
      System.out.println(temp);
    }
  }
}

La sortie du programme est la même que celle du premier programme.

Parcourez la LinkedList en utilisant la boucle while

L’instanciation et l’ajout d’éléments au processus d’inscription seront similaires de toutes les manières mentionnées.

Dans l’exemple ci-dessous, la valeur de la variable de compteur est instanciée à 0 en dehors de la boucle while. La syntaxe de la boucle while n’a pas de place pour l’instanciation. Maintenant, appliquez la condition. Cela vérifie si la variable est inférieure à la taille de la liste donnée. Il retournera true, et la fonction println() sera exécutée. Après cela, nous devons incrémenter la variable de compteur. Le processus se répétera jusqu’à ce que la variable dépasse la taille de la liste.

package linkedList;

public class IteratingLinkedListUsingWhileLoop {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    int i = 0;
    while (i < list.size()) {
      System.out.println(list.get(i));
      i++;
    }
  }
}

Itérer la LinkedList à l’aide de la classe Iterator en Java

Un Iterator est une classe qui travaille sur le bouclage des objets Collections. Ce sont Array, ArrayList, LinkedList et ainsi de suite. Nous l’appelons un itérateur car il boucle sur les objets de la collection. Il faut utiliser les méthodes de la classe Iterator pour parcourir les objets Collections.

Nous utilisons la méthode iterator() pour obtenir un Iterator pour n’importe quelle collection. La méthode hasNext vérifie si la liste contient plus d’éléments. Il renvoie true si l’itération a plus d’éléments présents.

La méthode next récupère l’élément suivant de la boucle. Il renvoie le prochain objet présent dans l’itération et lance NoSuchElementException si aucun élément n’est présent dans la liste.

Le code ci-dessous illustre la classe Iterator et ses méthodes.

package linkedList;

public class IteratingLinkedListUsingIterator {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
      System.out.println(iterator.next());
    }
  }
}

Itérer la LinkedList à l’aide de Streams Java 8

Un stream se forme toujours sur un objet Collection. Dans le programme ci-dessous, nous utilisons la méthode stream pour le même. Les fonctions sont appliquées sur la chaîne des fonctions de flux. Le forEach est une opération terminal. Cela signifie qu’on ne peut effectuer aucune opération après une fonction de terminal. Il prend un flux consommateur, et ce flux n’émet pas d’éléments mais les consomme.

Le code ci-dessous montre l’utilisation des flux Java 8 et leur fonction pour parcourir la liste.

package linkedList;

public class IteratingLinkedListUsingStreams {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    list.stream().forEach((element) -> { System.out.println(element); });
  }
}
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Article connexe - Java List