Java Iterator
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()
: Retournetrue
si l'itération a plus d'éléments. Il permet de vérifier s'il y a plus d'éléments à itérer.boolean hasNext();
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.E next();
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érerUnsupportedOperationException
si la collection ne prend pas en charge la suppression.void remove();
Exemples
Exemple 1 : Utilisation de base avec liste
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
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);
}
}
}
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;
public class RemoveExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
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);
}
}
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()
avantnext()
: Vérifiez toujourshasNext()
avant d'appelernext()
pour éviterNoSuchElementException
. - Évitez les exceptions de type ConcurrentModificationException: Ne modifiez pas directement la collection lorsque vous la parcourez. Utilisez la méthode
remove()
du siteIterator
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'éviterUnsupportedOperationException
. - 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.