Unterschied zwischen Iterator und Enumerationsschnittstelle in Java

Iterator vs EnumerationDie drei Cursor, mit denen nacheinander auf die Elemente einer Sammlung zugegriffen wird, sind Enumeration, Iterator und ListIterator. Iterator und Enumerator sind jedoch dazu gedacht, dieselbe Arbeit auszuführen. Sie unterscheiden sich jedoch insofern voneinander, als die Enumeration schreibgeschützten Zugriff auf die Elemente in der Auflistung hat. Auf der anderen Seite kann Iterator die Elemente aus der Sammlung lesen und entfernen.

Der wichtige Unterschied zwischen Iterator und Enumeration besteht darin, dass die Enumeration nicht auf die Auflistungsklassen angewendet werden kann, sondern nur auf die Legacy-Klassen. Andererseits ist der Iterator auf die Sammlungsklassen anwendbar, daher wird er als universeller Cursor bezeichnet. Lassen Sie uns anhand der unten gezeigten Vergleichstabelle einen weiteren Unterschied zwischen Iterator und Enumeration lernen.

Inhalt: Iterator Vs Aufzählung

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

Vergleichstabelle

Vergleichsbasis Iterator Aufzählung
Basic Iterator ist ein universeller Cursor, da er für alle Sammlungsklassen anwendbar ist. Enumeration ist kein universeller Cursor, da er nur für Legacy-Klassen gilt.
Zugriff Mit Iterator können Sie die Elemente in der Sammlung lesen und entfernen. Mit Enumeration können Sie nur die Elemente in der Sammlung lesen.
Methoden public boolean hasnext();
öffentliche Objekte next();
public void remove();
public boolean hasMoreElements();
öffentliches Objekt nextElement();
Einschränkung Iterator ist ein unidirektionaler Vorwärtszugriffscursor.
Iterator kann kein Element in der Sammlung ersetzen.
Iterator kann kein neues Element in der Sammlung hinzufügen.
Enumeration ist ein unidirektionaler Vorwärtszugriffscursor.
Enumeration unterstützt nur Legacy-Klassen.
Enumeration hat nur schreibgeschützten Zugriff auf die Elemente in einer Sammlung.
Overcome Um die Einschränkungen von Iterator zu überwinden, müssen Sie sich für ListIterator entscheiden. Um die Einschränkungen der Enumeration zu überwinden, müssen Sie sich für Iterator entscheiden.

Definition der Iteratorschnittstelle

Iterator ist eine Schnittstelle im Sammlungsframework. Da Iterator auf alle Sammlungsklassen 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 Sammlung abrufen und wenn Sie möchten, können Sie die Elemente auch aus der Sammlung entfernen. Das Objekt des Iterators kann wie unten angegeben erstellt werden.

Iterator itr = Collc.iterator();

Die Variable itr ist ein Objekt des Iterators. Collc ist jedes Sammlungsobjekt, das mit dem Objekt (itr) des Iterators durchlaufen oder iteriert werden soll. Der Iterator() ist die Methode zum Erstellen eines Iteratorobjekts. Es gibt drei Methoden im Iterator, wie unten gezeigt.

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

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

Iterator kann sich in einer Sammlung nur in Vorwärtsrichtung bewegen, während er sich nicht zurückbewegen kann. Iterator kann das Element aus der Sammlung entfernen, kann jedoch kein vorhandenes Element durch ein neues Element ersetzen und kein neues Element zur Sammlung hinzufügen. Um diese Einschränkungen zu überwinden, können Sie für ListIterator Schnittstelle gehen.

Definition der Enumerationsschnittstelle

Enumeration ist die Schnittstelle für die Legacy-Klassen und kann nicht auf eine Sammlungsklasse angewendet werden. Daher ist es kein universeller Cursor. Die Enumeration ruft das Element (Objekt) nacheinander aus der Auflistung ab. Enumeration-Objekt hat schreibgeschützten Zugriff auf die Elemente der Sammlung. Enumeration Objekt kann kein Element aus der Sammlung ändern. Lassen Sie uns sehen, wie Enumeration-Objekt zu erstellen, einen Blick.

Enumeration er = Vect.elements();

Die Variable er ist ein Objekt der Enumeration. Der Vect ist das Objekt der vector Klasse, das vom Objekt (er) der Enumeration durchlaufen werden muss. Die Methode element() wird verwendet, um ein Objekt der Enumeration 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 Sammlung die Elemente enthält, gibt die Methode hasMoreElements () true zurück, andernfalls false . Die zweite Methode nextElement() wird verwendet, um die Elemente nacheinander aus der Sammlung abzurufen.

Wenn das Durchlaufen abgeschlossen ist, löst die nextElement() -Methode NoSuchElementException aus. Das Enumerationsobjekt 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.

Hauptunterschiede zwischen Iterator und Aufzählung in Java

  1. Der Hauptunterschied zwischen Iterator und Aufzählung besteht darin, dass Iterator ein universeller Cursor ist, der zum Iterieren eines beliebigen Sammlungsobjekts verwendet werden kann. Andererseits wird die Enumeration nur zum Durchlaufen von Objekten der Legacy-Klasse verwendet.
  2. Enumerationsobjekt hat nur schreibgeschützten Zugriff auf die Elemente in der Sammlung. Das Objekt des Iterators kann jedoch die Elemente aus der Sammlung lesen und entfernen.
  3. Es gibt zwei Methoden des Iterators, eine zum Überprüfen des Status der Sammlung und eine zum Abrufen der Elemente aus der Sammlung. Zusätzlich zu Aufzählungsmethoden Iterator hat eine weitere Methode, um die Elemente aus der Sammlung zu entfernen.
  4. Einschränkungen der Aufzählung bestehen darin, dass es sich um einen unidirektionalen Cursor handelt, der schreibgeschützten Zugriff hat und auf die Auflistungsklassen angewendet werden kann. Auf der anderen Seite kann Iterator kein neues Element in der Sammlung ersetzen oder hinzufügen und wie die Aufzählung auch den unidirektionalen Cursor weiterleiten.
  5. Einschränkungen der Enumeration werden durch Iterator und Einschränkungen des Iterators durch ListIterator aufgelöst.

Fazit

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.