Énumération vs Itérateur
De nombreuses structures de données agissant comme des collections en Java, telles que des vecteurs, des tables de hachage et des classes qui implémentent Java Collections Framework (HashMap, HashSet, ArrayList, TreeSmap, TreeMap, LinkedList, LinkedHashMap et LinkedHashSet). Il existe de nombreuses façons de parcourir les différents éléments des objets en Java. Java fournit deux interfaces pour faciliter cette tâche. Énumération et Iterator sont deux des interfaces présentes dans le package java.util qui fournissent des fonctionnalités permettant d'énumérer des séquences ou des objets avec un ensemble d'éléments. Enumerator a été introduit dans JDK 1.0 et Iterator dans JDK 1.2 duplique pratiquement les fonctionnalités de Enumerator (dans le cadre de la collection)..
Qu'est-ce que l'énumération??
Enumeration est une interface publique en Java, introduite dans JDK 1.0, qui permet d’énumérer des séquences d’éléments. Il se trouve sous le paquet java.util. Lorsque l'interface d'énumération est implémentée par un objet, cet objet peut générer une séquence d'éléments. L'interface d'énumération a deux méthodes. La méthode hasMoreElements () vérifiera si cette énumération contient plus d'éléments et si nextElement () renvoie l'élément suivant de la séquence (s'il en reste au moins un). En d'autres termes, en appelant successivement nextElement (), le programmeur peut accéder aux éléments individuels de la série. Par exemple, pour imprimer tous les éléments du vecteur v1 à l’aide d’Enumerator, l’extrait de code suivant peut être utilisé..
Énumération e = v1.elements ();
While (e.hasMoreLements ())
System.out.println (e.nextElement ());
L'énumérateur peut également être utilisé pour définir le flux d'entrée dans les objets SequenceInputStream..
Qu'est-ce que Itérateur??
Iterator est une interface publique dans le package Java.util, qui permet de parcourir les éléments des objets de collections qui implémentent la structure Collections (telle que ArrayList, LinkedList, etc.). Cela a été introduit dans JDK 1.2 et a remplacé l'enumérateur dans Java Collections Framework. Itérateur a trois méthodes. La méthode hasNext () teste s'il reste des éléments dans la collection et la méthode next () renvoie l'élément suivant de la série. La méthode remove () peut être utilisée pour supprimer l'élément actuel de la collection sous-jacente. Par exemple, pour imprimer tous les éléments du vecteur v1 à l'aide d'Iterator, l'extrait de code suivant peut être utilisé..
Itérateur i = v1.elements ();
While (i.hasNext ())
System.out.println (e.next ());
Quelle est la différence entre Énumération et Itérateur?
Bien que Enumeration et Iterator soient deux des interfaces présentes dans le package java.util, qui permettent une itération / énumération à travers les éléments d'une série, elles ont leurs différences. En fait, Iterator, qui a été introduit après Enumeration, remplace Enumeration dans la structure Java Collections. Contrairement à Enumeration, Iterator est sécurisé. Cela signifie que les modifications simultanées (dans la collection sous-jacente) ne sont pas autorisées lors de l'utilisation d'Iterator. Ceci est très utile dans les environnements multithreads où il y a toujours un risque de modifications simultanées. En cas de modification simultanée, l'objet Iterator lève une exception ConcurrentModificationException. Iterator a des noms de méthode plus courts par rapport à Enumerator. De plus, l'itérateur a la fonctionnalité supplémentaire de supprimer des éléments pendant l'itération (ce qui n'est pas possible avec Enumerator). Donc, s’il est nécessaire de supprimer des éléments de la collection, Iterator est la seule option envisageable..