Maîtriser l'interface ListIterator de Java : Guide pratique
Maîtriser l'interface ListIterator de Java : Guide pratique
L'interface ListIterator étend Iterator et offre un parcours bidirectionnel, permettant de se déplacer en avant et en arrière dans une List tout en effectuant des modifications à la volée.
Ses fonctionnalités clés incluent la navigation, la suppression et le remplacement d'éléments, en faisant un outil essentiel pour tout développeur Java travaillant avec des listes.
Méthodes principales de ListIterator
hasNext()– Renvoietrues'il existe un élément suivantnext()– Passe à l'élément suivant et le renvoienextIndex()– Fournit l'index de l'élément quenext()renverraprevious()– Recule et renvoie l'élément précédentpreviousIndex()– Fournit l'index de l'élément queprevious()renverraremove()– Supprime le dernier élément renvoyé parnext()ouprevious()set(E e)– Remplace le dernier élément renvoyé par la valeur spécifiée
Exemple 1 : Navigation vers l'avant
Exemple démontrant next(), nextIndex() et hasNext() sur un ArrayList :
import java.util.ArrayList;
import java.util.ListIterator;
class Main {
public static void main(String[] args) {
ArrayList<Integer> nombres = new ArrayList<>();
nombres.add(1);
nombres.add(3);
nombres.add(2);
System.out.println("ArrayList : " + nombres);
ListIterator<Integer> iterateur = nombres.listIterator();
int premier = iterateur.next();
System.out.println("Élément suivant : " + premier);
int indexSuivant = iterateur.nextIndex();
System.out.println("Position de l'élément suivant : " + indexSuivant);
System.out.println("Y a-t-il un élément suivant ? " + iterateur.hasNext());
}
}
Sortie
ArrayList : [1, 3, 2] Élément suivant : 1 Position de l'élément suivant : 1 Y a-t-il un élément suivant ? true
Exemple 2 : Navigation vers l'arrière
Cet exemple montre previous() et previousIndex() après avoir avancé l'itérateur deux fois :
import java.util.ArrayList;
import java.util.ListIterator;
class Main {
public static void main(String[] args) {
ArrayList<Integer> nombres = new ArrayList<>();
nombres.add(1);
nombres.add(3);
nombres.add(2);
System.out.println("ArrayList : " + nombres);
ListIterator<Integer> iterateur = nombres.listIterator();
iterateur.next();
iterateur.next();
int precedent = iterateur.previous();
System.out.println("Élément précédent : " + precedent);
int indexPrecedent = iterateur.previousIndex();
System.out.println("Position de l'élément précédent : " + indexPrecedent);
}
}
Sortie
ArrayList : [1, 3, 2] Élément précédent : 3 Position de l'élément précédent : 0
Initialement, l'itérateur est positionné avant le premier élément, donc appeler previous() lancerait une exception. Après deux appels à next(), l'itérateur se trouve entre 3 et 2, faisant retourner 3 par previous().
Java
- Maîtriser les interfaces C# : Définition, implémentation et cas d'utilisation pratiques
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Maîtriser l'interface NavigableSet de Java : Navigation, tri et exemples pratiques
- Maîtriser les expressions lambda Java : Des bases à l'API Stream
- Interface vs Classe Abstraite en Java : Comment Choisir la Bonne Abstraction