Unterschied zwischen Iterator und Enumeration Interface in Java

Autor: Laura McKinney
Erstelldatum: 2 April 2021
Aktualisierungsdatum: 17 Kann 2024
Anonim
#11.1 Collection and Generics | Iterator Interface
Video: #11.1 Collection and Generics | Iterator Interface

Inhalt


Die drei Cursor, die verwendet werden, um nacheinander von einer Sammlung auf die Elemente zuzugreifen, lauten Aufzählung, Iterator und ListIterator. Iterator und Enumerator sind jedoch für die Ausführung derselben Arbeit gedacht. Sie unterscheiden sich jedoch dadurch, dass Enumeration nur Lesezugriff auf die Elemente in der Auflistung hat. Auf der anderen Seite kann Iterator die Elemente aus der Auflistung lesen und entfernen. Der wichtige Unterschied zwischen dem Iterator und der Aufzählung besteht darin, dass der Aufzählung kann nicht auf die Auflistungsklassen angewendet werden, sondern gilt nur für die Legacy-Klassen. Auf der anderen Seite die Iterator gilt daher für die Auflistungsklassen und wird als universeller Cursor bezeichnet. Lassen Sie uns anhand der folgenden Vergleichstabelle einen weiteren Unterschied zwischen Iterator und Enumeration erkennen.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichIterator Aufzählung
BasicIterator ist ein universeller Cursor, da er für alle Auflistungsklassen gilt.Die Aufzählung ist kein universeller Cursor, da sie nur für ältere Klassen gilt.
ZugriffMit Iterator können Sie die Elemente in der Sammlung lesen und entfernen.Mit Enumeration können Sie nur die Elemente in der Auflistung lesen.
Methodenpublic boolean hasnext ();
öffentliche Objekte next ();
public void remove ();
public boolean hasMoreElements ();
öffentliches Objekt nextElement ();
VerjährungIterator ist ein unidirektionaler Forward-Access-Cursor.
Iterator kann kein Element in der Auflistung ersetzen.
Iterator kann der Sammlung kein neues Element hinzufügen.
Die Aufzählung ist ein unidirektionaler Cursor für den Vorwärtszugriff.
Die Aufzählung unterstützt nur ältere Klassen.
Die Aufzählung hat nur Lesezugriff auf die Elemente in einer Auflistung.
ÜberwindenUm die Einschränkungen von Iterator zu überwinden, müssen Sie sich für ListIterator entscheiden.Um die Einschränkungen der Aufzählung zu überwinden, müssen Sie sich für Iterator entscheiden.


Definition der Iteratorschnittstelle

Iterator ist eine Schnittstelle im Collection Framework. Da Iterator auf alle Auflistungsklassen anwendbar ist, wird es als universeller Cursor bezeichnet. Es ist der Cursor, mit dem nacheinander auf die Elemente in der Sammlung zugegriffen wird. Mit Iterator können Sie die Elemente aus der Auflistung abrufen und bei Bedarf auch die Elemente aus der Auflistung entfernen. Das Objekt von Iterator kann wie folgt erstellt werden.

Iterator itr = Collc.iterator ();

Die Variable itr ist ein Objekt von Iterator. Collc ist ein beliebiges Erfassungsobjekt, das unter Verwendung des Objekts (itr) des Iterators durchlaufen oder iteriert werden soll. Das Iterator () ist die Methode, mit der ein Iterator-Objekt erstellt wird. Es gibt drei Methoden im Iterator, wie unten gezeigt.

public boolean hasnext (); öffentliches Objekt next (); public void remove ();

Die erste Methode hasnext () prüft, ob die Sammlung Elemente enthält oder nicht. Wenn die Auflistung die Elemente enthält, wird true zurückgegeben, andernfalls false. Die zweite Methode Nächster() wird verwendet, um das nächste Element in der Auflistung abzurufen. Die dritte Methode entfernen() wird verwendet, um die Elemente aus der Sammlung zu löschen.


Der Iterator kann in einer Sammlung nur in Vorwärtsrichtung reisen, während er sich nicht zurückbewegt. Iterator kann das Element aus der Auflistung entfernen, kann jedoch kein vorhandenes Element durch ein neues Element ersetzen und der Auflistung kein neues Element hinzufügen. Um diese Einschränkungen zu überwinden, können Sie die ListIterator-Oberfläche verwenden.

Definition der Enumerationsschnittstelle

Aufzählung ist die Schnittstelle für die Erbe Klassen, und es kann nicht auf jede Auflistungsklasse angewendet werden. Daher ist es kein universeller Cursor. Durch die Aufzählung wird das Element (Objekt) nacheinander aus der Auflistung abgerufen. Das Aufzählungsobjekt hat schreibgeschützten Zugriff auf die Elemente der Auflistung. Das Aufzählungsobjekt kann kein Element aus der Auflistung ändern. Schauen wir uns an, wie man ein Aufzählungsobjekt erstellt.

Aufzählung er = Vect.elements ();

Die Variable äh ist ein Objekt der Aufzählung. Das Vect ist das Objekt der Vektorklasse, das vom Objekt (er) der Aufzählung durchlaufen werden muss. Die Methode Element() wird verwendet, um ein Objekt der Aufzählung zu erstellen. Es gibt nur zwei Methoden in der Enumerationsschnittstelle, wie unten gezeigt.

public boolean hasMoreElements (); public nextElement ();

Die erste Methode hasMoreElements () wird verwendet, um den Status der Sammlung zu überprüfen, ob sie die Elemente enthält oder leer ist. Wenn die Auflistung die Elemente enthält, gibt die Methode hasMoreElements () true zurück, andernfalls false. Die zweite Methode nextElement () wird verwendet, um die Elemente einzeln aus der Sammlung abzurufen. Wenn der Durchlauf abgeschlossen ist, wird die nextElement () -Methode ausgelöst NoSuchElementException. Das Enumeration-Objekt bewegt sich nur in Vorwärtsrichtung. Es kann kein Element in der Sammlung hinzufügen, entfernen oder ersetzen. Um diese Einschränkungen der Aufzählung zu überwinden, müssen Sie sich für Iterator entscheiden.

  1. Der Hauptunterschied zwischen Iterator und Enumeration besteht darin, dass Iterator ein universeller Cursor ist, der zum Iterieren eines beliebigen Auflistungsobjekts verwendet werden kann. Auf der anderen Seite wird die Aufzählung nur zum Durchlaufen von Objekten der Legacy-Klasse verwendet.
  2. Das Aufzählungsobjekt hat nur Lesezugriff auf die Elemente in der Auflistung. Das Objekt von Iterator kann jedoch die Elemente lesen und aus der Auflistung entfernen.
  3. Es gibt zwei Methoden des Iterators: eine, um den Status der Sammlung zu überprüfen, und eine, um die Elemente aus der Sammlung abzurufen. Neben den Aufzählungsmethoden verfügt Iterator über eine weitere Methode zum Entfernen der Elemente aus der Auflistung.
  4. Einschränkungen der Aufzählung sind, dass es sich um einen unidirektionalen Vorwärtscursor handelt, dass er nur über Lesezugriff verfügt und auf die Auflistungsklassen angewendet werden kann. Andererseits kann Iterator kein neues Element in der Auflistung ersetzen oder hinzufügen und wie Enumeration auch seinen unidirektionalen Vorwärtscursor.
  5. Einschränkungen der Aufzählung werden von Iterator und Einschränkungen von Iterator von ListIterator behoben.

Fazit:

Heutzutage werden Iterator- und ListItertaor-Cursor verwendet, da sie der universelle Cursor sind und viel effizienter als die Aufzählung sind.