Itérer à travers une LinkedList en Java
-
Parcourez la LinkedList à l’aide de la boucle
for
en Java -
Parcourez la LinkedList à l’aide de la boucle
for
améliorée en Java -
Parcourez la LinkedList en utilisant la boucle
while
-
Itérer la LinkedList à l’aide de la classe
Iterator
en Java -
Itérer la LinkedList à l’aide de
Streams
Java 8
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 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