En Java, Iterator est une interface qui permet de parcourir une collection d'objets, tels que des listes ou des ensembles, un élément à la fois. Il fait partie du Java Collections Framework et se trouve dans le paquetage java.util. L'interface Iterator est utilisée pour accéder aux éléments d'une collection de manière séquentielle sans exposer la structure sous-jacente de la collection.
Méthodes clés
L'interface Iterator propose trois méthodes principales :
hasNext(): Retourne true si l'itération a plus d'éléments. Il permet de vérifier s'il y a plus d'éléments à itérer.
remove(): Supprime de la collection sous-jacente le dernier élément renvoyé par la méthode next(). Cette méthode est facultative et peut générer UnsupportedOperationException si la collection ne prend pas en charge la suppression.
import java.util.ArrayList;import java.util.Iterator;import java.util.List;publicclassIteratorExample{publicstaticvoidmain(String[] args){
List<String> list =newArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();while(iterator.hasNext()){
String fruit = iterator.next();
System.out.println(fruit);}}}Propulsé par
Dans cet exemple, un site ArrayList de chaînes de caractères est créé et alimenté avec des noms de fruits. Une adresse Iterator est obtenue à partir de la liste pour parcourir et imprimer chaque fruit.
Exemple 2 : Suppression d'éléments
import java.util.ArrayList;import java.util.Iterator;import java.util.List;publicclassRemoveExample{publicstaticvoidmain(String[] args){
List<String> list =newArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();while(iterator.hasNext()){
String fruit = iterator.next();if("Banana".equals(fruit)){
iterator.remove();}}
System.out.println(list);}}Propulsé par
Cet exemple montre comment supprimer des éléments d'une liste à l'aide d'un Iterator. L'élément "Banana" est supprimé au cours de l'itération.
Conseils et bonnes pratiques
Utilisez hasNext() avant next(): Vérifiez toujours hasNext() avant d'appeler next() pour éviter NoSuchElementException.
Évitez les exceptions de type ConcurrentModificationException: Ne modifiez pas directement la collection lorsque vous la parcourez. Utilisez la méthode remove() du site Iterator pour retirer les éléments en toute sécurité.
Utilisez des boucles de type "For" améliorées lorsque c'est possible: Pour les itérations simples où la suppression n'est pas nécessaire, la boucle for améliorée de Java (for-each) peut être plus concise et plus lisible.
Comprendre les opérations non soutenues: Toutes les collections ne prennent pas en charge l'opération remove(). Soyez conscient des capacités de la collection afin d'éviter UnsupportedOperationException.
Envisagez des alternatives: Pour des besoins d'itération plus complexes, envisagez d'utiliser ListIterator, qui offre des possibilités supplémentaires telles que l'itération bidirectionnelle et la modification d'éléments.
En Java,
Iteratorest une interface qui permet de parcourir une collection d'objets, tels que des listes ou des ensembles, un élément à la fois. Il fait partie du Java Collections Framework et se trouve dans le paquetagejava.util. L'interfaceIteratorest utilisée pour accéder aux éléments d'une collection de manière séquentielle sans exposer la structure sous-jacente de la collection.Méthodes clés
L'interface
Iteratorpropose trois méthodes principales :hasNext(): Retournetruesi l'itération a plus d'éléments. Il permet de vérifier s'il y a plus d'éléments à itérer.next(): Renvoie l'élément suivant dans l'itération. Il doit être appelé aprèshasNext()pour s'assurer qu'il existe un élément suivant.remove(): Supprime de la collection sous-jacente le dernier élément renvoyé par la méthodenext(). Cette méthode est facultative et peut générerUnsupportedOperationExceptionsi la collection ne prend pas en charge la suppression.Exemples
Exemple 1 : Utilisation de base avec liste
Dans cet exemple, un site
ArrayListde chaînes de caractères est créé et alimenté avec des noms de fruits. Une adresseIteratorest obtenue à partir de la liste pour parcourir et imprimer chaque fruit.Exemple 2 : Suppression d'éléments
Cet exemple montre comment supprimer des éléments d'une liste à l'aide d'un
Iterator. L'élément "Banana" est supprimé au cours de l'itération.Conseils et bonnes pratiques
hasNext()avantnext(): Vérifiez toujourshasNext()avant d'appelernext()pour éviterNoSuchElementException.remove()du siteIteratorpour retirer les éléments en toute sécurité.for-each) peut être plus concise et plus lisible.remove(). Soyez conscient des capacités de la collection afin d'éviterUnsupportedOperationException.ListIterator, qui offre des possibilités supplémentaires telles que l'itération bidirectionnelle et la modification d'éléments.