Java Iterator
Der Java-Iterator ist ein Mechanismus im Java Collections Framework und eine Schnittstelle zum Durchlaufen von Sammlungen (wie Listen, Mengen und Maps usw.).
Es bietet eine einheitliche Möglichkeit, auf Elemente in einer Sammlung zuzugreifen, ohne die spezifischen Implementierungsdetails der zugrunde liegenden Sammlung verstehen zu müssen.
Der Java-Iterator ist keine Sammlung; er ist eine Methode für den Zugriff auf Sammlungen und kann verwendet werden, um überArrayListundHashSetund andere Sammlungen.
Iterator ist die einfachste Implementierung des Java-Iterators. ListIterator ist eine Schnittstelle in der Collection-API, die die Iterator-Schnittstelle erweitert.

Die Iterator-Schnittstelle definiert mehrere Methoden. Die drei am häufigsten verwendeten sind:
next()- Gibt das nächste Element des Iterators zurück und bewegt den Zeiger des Iterators zur nächsten Position.
hasNext()- Wird verwendet, um festzustellen, ob es ein nächstes Element in der Sammlung gibt, auf das zugegriffen werden kann.
remove()- Entfernt das zuletzt vom Iterator zugegriffene Element aus der Sammlung (optionale Operation).
Die Klasse Iterator befindet sich im Paket java.util. Sie muss vor der Verwendung importiert werden. Die Syntax lautet wie folgt:
import java.util.Iterator; // 引入 Iterator 类
Durch die Verwendung eines Iterators können wir nacheinander auf Elemente in einer Sammlung zugreifen, ohne traditionelle for-Schleifen oder Indizes zu verwenden. Dieser Ansatz ist prägnanter und flexibler und funktioniert für verschiedene Arten von Sammlungen.
Einen Iterator erhalten
Um einen Iterator aus einer Sammlung zu erhalten, können Sie die Methode iterator() verwenden:
Beispiel
import java.util.ArrayList;
import java.util.Iterator;
public class ExampleTest {
public static void main(String[] args) {
// Eine Sammlung erstellen
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Example");
sites.add("Taobao");
sites.add("Zhihu");
// Iterator abrufen
Iterator<String> it = sites.iterator();
// Das erste Element in der Sammlung ausgeben
System.out.println(it.next());
}
}
Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:
Wenn ein Iterator zum Durchlaufen einer Sammlung verwendet wird und die Sammlung während des Durchlaufens geändert wird (zum Beispiel durch Hinzufügen oder Entfernen von Elementen), kann dies eine ConcurrentModificationException verursachen. Um dieses Problem zu vermeiden, können Sie die eigeneremove()-Methode verwenden, um Löschvorgänge durchzuführen.
Schleifen über Collection-Elemente
Der einfachste Weg, den Iterator it alle Elemente in der Collection einzeln zurückgeben zu lassen, ist die Verwendung einer while-Schleife:
while(it.hasNext()) {
System.out.println(it.next());
}
Das Folgende gibt alle Elemente in der Collection sites aus:
Beispiel
import java.util.ArrayList;
import java.util.Iterator;
public class ExampleTest {
public static void main(String[] args) {
// Eine Sammlung erstellen
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Example");
sites.add("Taobao");
sites.add("Zhihu");
// Iterator abrufen
Iterator<String> it = sites.iterator();
// Alle Elemente in der Collection ausgeben
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:
Google Example Taobao Zhihu
Entfernen von Elementen
Um Elemente aus einer Collection zu entfernen, können Sie die Methode remove() verwenden.
Im folgenden Beispiel entfernen wir Elemente kleiner als 10 aus der Collection:
Beispiel
import java.util.ArrayList;
import java.util.Iterator;
public class ExampleTest {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove(); // Elemente kleiner als 10 entfernen
}
}
System.out.println(numbers);
}
}
Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:
[12, 23]
Hinweis:Der Java-Iterator ist ein Einweg-Traversierungsmechanismus, was bedeutet, dass er Elemente in einer Sammlung nur von vorne nach hinten durchlaufen kann und nicht rückwärts. Wenn Sie außerdem einen Iterator zum Durchlaufen einer Sammlung verwenden, können Sie Elemente in der Sammlung nicht direkt ändern; stattdessen müssen Sie die Methode remove() des Iterators verwenden, um das aktuelle Element zu löschen.
Andere Erweiterungen
Java Collections Framework