logo

Iterator in Java

In Java ein Iterator ist einer der Java-Cursor. Java-Iterator ist eine Schnittstelle, die verwendet wird, um eine Sammlung von Java-Objektkomponenten einzeln nacheinander zu durchlaufen. Die Verwendung in der Programmiersprache Java ist seit dem Java 1.2 Collection Framework kostenlos. Es gehört zum Paket java.util.

Obwohl Java Iterator in Java 1.2 eingeführt wurde, ist es immer noch nicht das älteste verfügbare Tool zum Durchlaufen der Elemente des Collection-Objekts. Der älteste Iterator in der Programmiersprache Java ist der Enumerator vor dem Iterator. Die Java-Iterator-Schnittstelle folgt auf den Enumerator-Iterator, der zu Beginn zum Durchlaufen einiger zugänglicher Sammlungen wie ArrayLists verwendet wurde.

Der Java-Iterator ist auch als bekannt universeller Cursor von Java, da es für alle Klassen des Collection-Frameworks geeignet ist. Der Java-Iterator hilft auch bei Operationen wie READ und REMOVE. Wenn wir die Java-Iterator-Schnittstelle mit der Enumeration-Iterator-Schnittstelle vergleichen, können wir sagen, dass die Namen der in Java Iterator verfügbaren Methoden präziser und einfacher zu verwenden sind.

Vorteile von Java Iterator

Der Iterator in Java erfreute sich aufgrund seiner zahlreichen Vorteile großer Beliebtheit. Die Vorteile von Java Iterator sind wie folgt:

  • Der Benutzer kann diese Iteratoren auf jede der Klassen des Collection-Frameworks anwenden.
  • Im Java Iterator können wir sowohl Lese- als auch Entfernungsoperationen verwenden.
  • Wenn ein Benutzer mit einer for-Schleife arbeitet, kann er die Sammlung nicht modernisieren (hinzufügen/entfernen), wohingegen er die Sammlung einfach aktualisieren kann, wenn er den Java-Iterator verwendet.
  • Der Java-Iterator gilt als universeller Cursor für die Collection-API.
  • Die Methodennamen im Java Iterator sind sehr einfach und sehr einfach zu verwenden.

Nachteile von Java Iterator

Trotz der zahlreichen Vorteile hat der Java Iterator auch verschiedene Nachteile. Die Nachteile des Java Iterators sind unten aufgeführt:

  • Der Java-Iterator behält die Iteration nur in Vorwärtsrichtung bei. Vereinfacht ausgedrückt ist der Java-Iterator ein unidirektionaler Iterator.
  • Der Austausch und die Erweiterung einer neuen Komponente werden vom Java Iterator nicht genehmigt.
  • Bei CRUD-Operationen enthält der Java-Iterator nicht die verschiedenen Operationen wie CREATE und UPDATE.
  • Im Vergleich zum Spliterator unterstützt der Java-Iterator keine durchlaufenden Elemente im parallelen Muster, was bedeutet, dass der Java-Iterator nur sequentielle Iteration unterstützt.
  • Im Vergleich zum Spliterator unterstützt der Java Iterator keine zuverlässigere Ausführung zum Durchlaufen großer Datenmengen.

Wie verwende ich Java Iterator?

Wenn ein Benutzer den Java-Iterator verwenden muss, muss er aus der Sammlung von Objekten, die er durchlaufen möchte, eine Instanz der Iterator-Schnittstelle erstellen. Danach verwaltet der empfangene Iterator die Spur der Komponenten in der zugrunde liegenden Sammlung, um sicherzustellen, dass der Benutzer jedes Element der Objektsammlung durchläuft.

Wenn der Benutzer die zugrunde liegende Sammlung ändert, während er einen Iterator durchläuft, der zu dieser Sammlung führt, bestätigt der Iterator dies normalerweise und löst beim nächsten Mal, wenn der Benutzer versucht, die nächste Komponente vom Iterator abzurufen, eine Ausnahme aus.

Java-Iterator-Methoden

Die folgende Abbildung zeigt das Klassendiagramm der Java Iterator-Schnittstelle perfekt. Es enthält insgesamt vier Methoden:

  • hasNext()
  • nächste()
  • entfernen()
  • forEachRemaining()

Der forEachRemaining() Die Methode wurde in Java 8 hinzugefügt. Lassen Sie uns jede Methode im Detail besprechen.

    boolean hasNext(): Die Methode akzeptiert keine Parameter. Es gibt true zurück, wenn in der Iteration noch weitere Elemente übrig sind. Wenn keine weiteren Elemente mehr vorhanden sind, wird false zurückgegeben.
    Wenn in der Iteration keine weiteren Elemente mehr vorhanden sind, ist es nicht erforderlich, die Methode next() aufzurufen. Mit einfachen Worten können wir sagen, dass die Methode verwendet wird, um zu bestimmen, ob die next()-Methode aufgerufen werden soll oder nicht.E next():Es ähnelt der Methode hasNext(). Es akzeptiert auch keine Parameter. Es gibt E zurück, d. h. das nächste Element im Durchlauf. Wenn die Iteration oder Sammlung von Objekten keine weiteren zu iterierenden Elemente mehr hat, wird die NoSuchElementException ausgelöst.Standard-Void-Remove():Auch diese Methode erfordert keine Parameter. Für diese Methode gibt es keinen Rückgabetyp. Die Hauptfunktion dieser Methode besteht darin, das letzte Element zu entfernen, das vom Iterator beim Durchlaufen der zugrunde liegenden Sammlung zurückgegeben wird. Die Methode „remove()“ kann kaum einmal pro Aufruf der Methode „next()“ angefordert werden. Wenn der Iterator den Entfernungsvorgang nicht unterstützt, löst er die UnSupportedOperationException aus. Außerdem wird die IllegalStateException ausgelöst, wenn die nächste Methode noch nicht aufgerufen wurde.Standard void forEachRemaining(Consumer action):Es ist die einzige Methode von Java Iterator, die einen Parameter akzeptiert. Es akzeptiert eine Aktion als Parameter. Aktion ist nichts anderes als das, was ausgeführt werden soll. Es gibt keinen Rückgabetyp der Methode. Diese Methode führt den bestimmten Vorgang für alle verbleibenden Komponenten der Sammlung aus, bis alle Komponenten verbraucht sind oder die Aktion eine Ausnahme auslöst. Durch eine Aktion ausgelöste Ausnahmen werden an den Aufrufer übermittelt. Wenn die Aktion null ist, wird eine NullPointerException ausgelöst.

Beispiel eines Java-Iterators

Jetzt ist es an der Zeit, ein Java-Programm auszuführen, um die Vorteile der Java-Iterator-Schnittstelle zu veranschaulichen. Der folgende Code erzeugt eine ArrayList mit Städtenamen. Dann initialisieren wir einen Iterator mit der iterator()-Methode der ArrayList. Danach wird die Liste durchlaufen, um jedes Element darzustellen.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Ausgabe:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punkte, die man sich merken sollte

  • Der Java Iterator ist eine Schnittstelle, die in der Programmiersprache Java im Java 1.2 Collection Framework hinzugefügt wurde. Es gehört zum Paket java.util.
  • Es ist einer der Java-Cursor, die zum Durchlaufen der Objekte des Sammlungsframeworks eingesetzt werden.
  • Der Java-Iterator wird verwendet, um die Komponenten des Sammlungsobjekts einzeln zu iterieren.
  • Der Java-Iterator wird auch als universeller Cursor von Java bezeichnet, da er für alle Klassen des Collection-Frameworks geeignet ist.
  • Der Java Iterator unterstützt auch die Operationen wie READ und REMOVE.
  • Die Methodennamen der Iterator-Klasse sind im Vergleich zu den Methodennamen von Enumeration Iterator sehr einfach und benutzerfreundlich.