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

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

É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 le cadre de collections Java (i.e. 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. L'énumération et l'itérateur sont deux des interfaces trouvées dans Java.package util qui fournissent des fonctionnalités pour énumérer à travers des séquences ou des objets avec un ensemble d'éléments. Enumerateur a été introduit dans JDK 1.0 et itérateur qui a été introduit dans JDK 1.2 Duplique pratiquement la fonctionnalité de l'énumérateur (dans le cadre des collections).

Qu'est-ce que l'énumération?

L'énumération est une interface publique en Java, introduite dans JDK 1.0, qui offre la possibilité d'énumérer à travers des séquences d'éléments. On le trouve sous Java.package 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 () testera si cette énumération contient plus d'éléments et que le nextElement () renvoie l'élément suivant de la séquence (s'il y a au moins un de plus). En d'autres termes, en appelant NextElement () successivement, 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 d'un énumérateur, l'extrait de code suivant peut être utilisé.

Énumération E = V1.éléments();

Pendant que (e.HasMorelements ())

Système.dehors.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 à Java.package util, qui permet d'itérer les éléments des objets collections qui implémentent le cadre de collections (tels que ArrayList, LinkedList, etc.). Cela a été introduit dans JDK 1.2 et remplacé l'énumérateur dans le cadre des collections Java. Iterator a trois méthodes. La méthode hasnext () teste s'il y a des éléments restants dans la collection et la méthode suivante () renvoie l'élément suivant de la série. La méthode retirer () 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 en utilisant Iterator, l'extrait de code suivant peut être utilisé.

Iterator i = v1.éléments();

Alors que je.Hasnext ())

Système.dehors.println (e.suivant());

Quelle est la différence entre l'énumération et l'itérateur?

Bien que l'énumération et l'itérateur soient deux des interfaces trouvées dans Java.package util, qui permettent d'itérer / énumer sur les éléments d'une série, ils ont leurs différences. En fait, Iterator, qui a été introduit après l'énumération, remplace l'énumération dans le cadre des collections Java. Contrairement à l'énumération, l'itérateur est défaillant. Cela signifie que les modifications simultanées (à la collection sous-jacente) ne sont pas autorisées lorsque l'itérateur est utilisé. Ceci est très utile dans des environnements multi-thread où il existe toujours un risque de modifications simultanées. En cas de modification simultanée, l'objet Iterator lancera une conception concurrentModificationException. Iterator a des noms de méthode plus courts par rapport à l'énumérateur. De plus, Iterator a les fonctionnalités supplémentaires de la suppression des éléments pendant l'itération (qui n'est pas possible en utilisant l'énumérateur). Ainsi, s'il est nécessaire de supprimer les éléments de la collection, Iterator est la seule option qui peut être considérée.