Différence Entre l’Itérateur et l’Interface d’énumération en Java

 Itérateur vs Enumeration Les trois curseurs utilisés pour accéder aux éléments de n’importe quelle collection un par un sont Enumeration, Iterator et ListIterator. Cependant, l’Itérateur et l’énumérateur sont destinés à effectuer le même travail. Néanmoins, ils sont distincts les uns des autres en ce sens que l’énumération a un accès en lecture seule aux éléments de la collection. De l’autre côté, l’itérateur peut lire et supprimer les éléments de la collection.

La différence importante entre l’Itérateur et l’Énumération est que l’Énumération ne peut pas être appliquée aux classes de collection, elle ne s’applique qu’aux classes héritées. D’autre part, l’Itérateur est applicable aux classes de collection, il est donc appelé curseur universel. Apprenons un peu plus de différence entre l’Itérateur et l’énumération à l’aide du tableau de comparaison ci-dessous.

Contenu: Itérateur Vs Énumération

  1. Tableau de comparaison
  2. Définition
  3. Différences clés
  4. Conclusion

Tableau de comparaison

Base de comparaison Itérateur Énumération
L’itérateur de base est un curseur universel car il s’applique à toutes les classes de collection. L’énumération n’est pas un curseur universel car elle s’applique uniquement aux classes héritées.
Access En utilisant Iterator, vous pouvez lire et supprimer les éléments de la collection. En utilisant l’énumération, vous ne pouvez lire que les éléments de la collection.
Méthodes public booléen hasnext();
objets publics next();
public void remove();
public booléen hasMoreElements();
objet public nextElement();
Limitation L’itérateur est un curseur d’accès direct unidirectionnel.
L’itérateur ne peut remplacer aucun élément de la collection.
L’itérateur ne peut ajouter aucun nouvel élément dans la collection.
L’énumération est un curseur d’accès direct unidirectionnel.
L’énumération ne prend en charge que les classes héritées.L’énumération
n’a qu’un accès en lecture seule aux éléments d’une collection.
Surmonter Pour surmonter les limitations de l’Itérateur, vous devez opter pour ListIterator. Pour surmonter les limites de l’énumération, vous devez opter pour l’Itérateur.

Définition de l’interface Iterator

Iterator est une interface du framework de collection. Comme l’itérateur est applicable à toutes les classes de collection, il est appelé curseur universel. C’est le curseur utilisé pour accéder un par un aux éléments de la collection. En utilisant Iterator, vous pouvez récupérer les éléments de la collection et si vous le souhaitez, vous pouvez également supprimer les éléments de la collection. L’objet de l’Itérateur peut être créé comme indiqué ci-dessous.

Iterator itr = Collc.iterator();

La variable itr est un objet d’Itérateur. Collc est un objet de collection qui doit être cyclé ou itéré en utilisant l’objet (itr) de l’Itérateur. L’itérateur() est la méthode utilisée pour créer un objet itérateur. Il existe trois méthodes dans l’Itérateur, comme indiqué ci-dessous.

public boolean hasnext();public Object next();public void remove();

La première méthode hasnext() vérifie si la collection contient ou non des éléments. Si la collection contient les éléments, elle retournera true sinon retournera false. La deuxième méthode next() est utilisée pour récupérer l’élément suivant de la collection. La troisième méthode remove() est utilisée pour supprimer les éléments de la collection.

L’itérateur ne peut se déplacer dans une collection que dans la direction avant, il ne peut pas reculer pendant le voyage. L’itérateur peut supprimer l’élément de la collection mais n’a pas la capacité de remplacer un élément existant par un nouvel élément ni d’ajouter un nouvel élément dans la collection. Pour surmonter ces limitations, vous pouvez opter pour l’interface ListIterator.

Définition de l’interface d’énumération

L’énumération est l’interface applicable aux classes héritées et ne peut être appliquée à aucune classe de collection. Ce n’est donc pas un curseur universel. L’énumération récupère l’élément (objet) de la collection un par un. L’objet d’énumération a un accès en lecture seule aux éléments de la collection. L’objet d’énumération ne peut modifier aucun élément de la collection. Voyons comment créer un objet d’énumération, jetez un coup d’œil.

Enumeration er = Vect.elements();

La variable er est un objet d’énumération. Le Vect est l’objet de la classe de vecteurs qui doit être traversé par l’objet (er) de l’énumération. L’élément method() est utilisé pour créer un objet d’énumération. Il n’y a que deux méthodes dans l’interface d’énumération, comme indiqué ci-dessous.

public boolean hasMoreElements();public nextElement();

La première méthode hasMoreElements() est utilisée pour vérifier l’état de la collection si elle contient les éléments ou si elle est vide. Si la collection contient les éléments, la méthode hasMoreElements() renvoie true sinon renvoie false. La deuxième méthode nextElement() est utilisée pour récupérer les éléments de la collection un par un.

Lorsque la traversée est terminée, la méthode nextElement() lève NoSuchElementException. L’objet d’énumération se déplace uniquement dans la direction avant. Il ne peut pas ajouter, supprimer ou remplacer un élément de la collection. Pour surmonter ces limitations de l’Énumération, vous devez opter pour Iterator.

Différences clés entre l’Itérateur et l’Énumération en Java

  1. La principale différence entre l’Itérateur et l’énumération est que l’Itérateur est un curseur universel, peut être utilisé pour itérer n’importe quel objet de collection. D’autre part, l’énumération est utilisée uniquement pour parcourir l’objet de la classe héritée.
  2. L’objet d’énumération n’a qu’un accès en lecture seule aux éléments de la collection. Cependant, l’objet de l’Itérateur peut lire et supprimer les éléments de la collection.
  3. Il existe deux méthodes d’itérateur, l’une pour vérifier l’état de la collection et l’autre pour récupérer les éléments de la collection. En plus des méthodes d’énumération, l’itérateur dispose d’une autre méthode pour supprimer les éléments de la collection.
  4. Les limites de l’énumération sont qu’il s’agit d’un curseur unidirectionnel direct, qu’il a un accès en lecture seule et qu’il peut être appliqué aux classes de collection. D’un autre côté, l’Itérateur ne peut pas remplacer ou ajouter de nouvel élément dans la collection et, comme l’énumération, son curseur unidirectionnel vers l’avant.
  5. Les limitations de l’énumération sont résolues par l’Itérateur et les limitations de l’Itérateur sont résolues par ListIterator.

Conclusion

De nos jours, l’Itérateur et le curseur ListItertaor sont utilisés car ils sont le curseur universel et sont beaucoup plus efficaces que l’énumération.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.