Wenn wir List und Set verwenden, um ihre Daten zu durchlaufen, verwenden wir häufig Iterator.
Mit dem Drop-Generator müssen Sie nicht in den Traversal-Prozess eingreifen. Sie müssen nur die gewünschten Daten einzeln herausnehmen und verarbeiten. Es gibt jedoch Unterschiede bei der Verwendung.
List und Set verfügen beide über iterator(), um ihre Iteratoren abzurufen. Für List können Sie seinen Iterator auch über listIterator() abrufen. Die beiden Iteratoren sind manchmal in folgenden Aspekten kompatibel:
1 Zur Liste hinzugefügt, aber Iterator kann nicht
2. ListIterator und Iterator verfügen beide über die Methoden hasNext() und next(), die eine sequentielle Rückwärtsdurchquerung erreichen können, aber ListIterator verfügt über die Methoden hasPrevious() und previous(), die implementiert werden können Rückwärtsdurchlauf (sequentiell vorwärts). Iterator kann nicht.
3. ListIterator kann die aktuelle Indexposition finden, und nextIndex() und previousIndex() können dies erreichen. Iterator verfügt nicht über diese Funktionalität.
4. Beide können Objekte löschen, ListIterator kann jedoch Objekte ändern, und die set()-Methode kann dies tun. Iierator kann nur durchlaufen und nicht geändert werden.
Aufgrund dieser Funktionen von ListIterator können Operationen an Listendatenstrukturen wie LinkedList implementiert werden.
Tatsächlich können Array-Objekte auch mithilfe von Iteratoren implementiert werden.
org.apache.commons.collections.iterators.ArrayIterator kann diese Funktion erreichen. Ich habe die Verwendung bereits erwähnt. Weitere Informationen finden Sie unter: Im Allgemeinen können wir einfach Iterator verwenden. Wenn Sie Datensätze wiederholt abrufen müssen, können Sie ListIterator verwenden, um Ihre Funktionalität zu erweitern (ähnlich wie die rollierende Ergebnismenge in JDBC).