Différence entre l'énumération et l'itérateur

Différence entre l'énumération et l'itérateur
Différence entre l'énumération et l'itérateur

Vidéo: Différence entre l'énumération et l'itérateur

Vidéo: Différence entre l'énumération et l'itérateur
Vidéo: 6 erreurs en modélisation des processus 2024, Novembre
Anonim

Énumération vs itérateur

Il existe de nombreuses structures de données qui agissent comme des collections en Java telles que les vecteurs, les tables de hachage et les classes qui implémentent Java Collections Framework (c'est-à-dire HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap et LinkedHashSet). Il existe de nombreuses façons d'itérer à travers les éléments individuels des objets en Java. Java fournit deux interfaces pour faciliter cette tâche. Enumeration et Iterator sont deux des interfaces trouvées dans le package java.util qui fournissent des fonctionnalités pour énumérer des séquences ou des objets avec un ensemble d'éléments. L'énumérateur a été introduit dans JDK 1.0 et Iterator qui a été introduit dans JDK 1.2 duplique virtuellement la fonctionnalité de l'énumérateur (dans le cadre des collections).

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 package java.util. Lorsque l'interface Enumeration 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() testera si cette énumération contient plus d'éléments et nextElement() renvoie l'élément suivant dans 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 de Vector v1 à l'aide de l'énumérateur, 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 vers les objets SequenceInputStream.

Qu'est-ce qu'Iterator ?

Iterator est une interface publique du package Java.util, qui permet d'itérer à travers les éléments des objets de collections qui implémentent le framework Collections (tels que ArrayList, LinkedList, etc.). Cela a été introduit dans JDK 1.2 et a remplacé l'énumérateur dans le Java Collections Framework. Iterator 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 dans 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 de Vector 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 trouvées dans le package java.util, qui permettent d'itérer/d'énumérer à 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 le framework Java Collections. Contrairement à Enumeration, Iterator est à sécurité intégrée. Cela signifie que les modifications simultanées (de la collection sous-jacente) ne sont pas autorisées lorsque Iterator est utilisé. Ceci est très utile dans les environnements multi-thread où il y a toujours un risque de modifications simultanées. En cas de modification simultanée, l'objet Iterator lèvera une ConcurrentModificationException. Iterator a des noms de méthode plus courts que Enumerator. De plus, iterator 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.

Conseillé: