Was ist der Unterschied zwischen Iterator und ListIterator?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen Iterator und ListIterator ist das Iterator kann die Elemente in der Auflistung nur in Vorwärtsrichtung durchlaufen, während ListIterator die Elemente in der Auflistung sowohl in Vorwärts- als auch in Rückwärtsrichtung durchlaufen kann.

Iterator und ListIterator sind zwei Schnittstellen in Java. Iterator wird mit Listen, Sets und Maps verwendet. Auf der anderen Seite wird ListIterator nur mit Listen verwendet. In ListIterator ist es möglich, die Elemente in der Sammlung in Vorwärts- und Rückwärtsrichtung zu durchlaufen. Im Gegensatz dazu kann der Iterator die Elemente in der Sammlung nur in Vorwärtsrichtung durchlaufen.

Sammlung, Schnittstelle, Iterator, ListIterator

Was ist Iterator?

Iterator ist eine Schnittstelle im Collection-Framework. Es ermöglicht, jedes Element einer Sammlung nacheinander durchzugehen. Es hilft beim Durchlaufen von Listen, Sets und Maps. Es ist jedoch nur möglich, mit dem Iterator vorwärts zu traversieren. Ein Beispielprogramm ist wie folgt.

Abbildung 01: Java-Programm mit Iterator

Im obigen Programm gibt es eine ArrayList namens colors. Die Methode add hilft beim Einfügen von Elementen in die Sammlung. Der iterator() gibt den Iterator an den Anfang der Sammlung zurück. Die while-Schleife ruft die Methode hasNext() jedes Mal auf, wenn die Schleife iteriert. Wenn in der Auflistung ein nächstes Element verfügbar ist, gibt diese Methode true zurück. Es gibt jedoch false zurück, wenn alle Elemente bereits durchlaufen wurden. Innerhalb der Schleife hilft die next()-Methode, jedes Element in der Collection zu erhalten. Es gibt das nächste Element der Sammlung zurück. Das System.out.println zeigt das Element auf der Konsole an.

Was ist ListIterator?

ListIterator ist eine Schnittstelle im Collection-Framework, die es ermöglicht, die in einer Collection vorhandenen Elemente nacheinander zu durchlaufen. Es kann nur die Elemente in einer Liste durchlaufen. Darüber hinaus ist es möglich, die Elemente sowohl in Vorwärts- als auch in Rückwärtsrichtung zu durchqueren. Siehe unten stehendes Programm.

Abbildung 02: Java-Programm mit ListIterator

Im obigen Programm gibt es eine Arrayliste namens Farben. Die Methode add hilft beim Einfügen von Elementen in die Sammlung. listIterator() gibt den Iterator an den Anfang der Sammlung zurück. Die erste while-Schleife ruft in jeder Iteration die Methode hasNext() auf. Innerhalb der Schleife wird die Methode next() verwendet, um das nächste Element der Sammlung zurückzugeben. Das System.out.println zeigt das Element auf der Konsole an. Daher werden alle Elemente auf der Konsole in Vorwärtsrichtung angezeigt.

Die nächste while-Schleife ruft die Methode hasPrevious() jedes Mal auf, wenn die Schleife iteriert. Es gibt true zurück, wenn die Elemente verfügbar sind. Wenn nicht, wird false zurückgegeben. Diese Traversierung erfolgt in Rückwärtsrichtung. Innerhalb der Schleife hilft die Methode previous() dabei, jedes Element in der Collection zu erhalten. Es gibt das vorherige Element der Sammlung zurück. Das System.out.println zeigt das Element auf der Konsole an.

Unterschied zwischen Iterator und ListIterator

Definition

Iterator ist eine Schnittstelle im Collection-Framework von Java, um die Liste in Vorwärtsrichtung zu durchlaufen. Im Gegensatz dazu ist ListIterator eine Schnittstelle im Collection-Framework von Java, um eine Liste in beide Richtungen zu durchlaufen, die Liste während der Iteration zu ändern und die aktuelle Position in der Liste zu erhalten. Dies ist also der Hauptunterschied zwischen Iterator und ListIterator.

Traverse

Ein wichtiger Unterschied zwischen Iterator und ListIterator besteht darin, dass Iterator Listen, Sets und Maps durchlaufen kann, während ListIterator nur Listen durchlaufen kann.

Fahrtrichtung

Index

Darüber hinaus besteht ein weiterer Unterschied zwischen Iterator und ListIterator darin, dass es in Iterator keine Methode gibt, um einen Index des Elements zu erhalten. Es ist jedoch möglich, den Index des Elements mit ListIterator abzurufen.

Elemente hinzufügen

Während Iterator der Sammlung keine Elemente hinzufügen kann, kann ListIterator der Sammlung Elemente mit add(E e) hinzufügen. Dies ist also ein weiterer Unterschied zwischen Iterator und ListIterator.

Ändern

Ein weiterer Unterschied zwischen Iterator und ListIterator besteht darin, dass Iterator die Elemente in der Auflistung nicht ändern kann. wohingegen ListIterator die Elemente in der Sammlung mit set(E e) ändern kann.

Gemeinsame Methoden

hasNext(), next(), remove() sind einige gängige Methoden von Iterator während hasNext(), next(), hasPrevious(), previous(), remove, add(E e), previousIndex(), set(E e) sind einige gängige Methoden von ListIterator.

Abschluss

Es gibt einen deutlichen Unterschied zwischen Iterator und ListIterator, obwohl einige Leute diese Begriffe synonym verwenden. Der Hauptunterschied zwischen Iterator und ListIterator besteht darin, dass Iterator die Elemente in der Auflistung nur in Vorwärtsrichtung durchlaufen kann, während ListIterator die Elemente in der Auflistung sowohl in Vorwärts- als auch in Rückwärtsrichtung durchlaufen kann.

Referenz:

1. Singh, Chaitanya. „Java-Iterator mit Beispielen.“ Beginnersbook.com, 15. Juni 2014, hier verfügbar.2. Singh, Chaitanya und Umesh. „ListIterator in Java mit Beispielen.“ Beginnersbook.com, 15. Juni 2014, hier verfügbar.3. ListIterator (Java Platform SE 7), 6. Oktober 2018, hier verfügbar.

Was ist der Unterschied zwischen Iterator und ListIterator?