Listen mit ListIterator ändern

Ein-/Ausgabe und Streams in Java

Alex Liu

Software Development Engineer

Iterator vs. ListIterator

Vergleich zwischen Iterator und ListIterator

Ein-/Ausgabe und Streams in Java

Beispiel-ArrayList

import java.util.ArrayList;
public class SampleData {
    public static void main(String[] args) {
        ArrayList<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
    }
}  
[Alice, Bob, Charlie]
Ein-/Ausgabe und Streams in Java

Liste mit ListIterator durchlaufen

// Import ListIterator class
import java.util.ListIterator;

// Erstelle ein ListIterator-Objekt für die Beispiel-Liste `names` ListIterator<String> it = names.listIterator(); // Nutze .hasNext() und `.next()`, um die Liste zu durchlaufen und zeilenweise auszugeben while (it.hasNext()) { System.out.println(it.next()); }
Alice 
Bob 
Charlie
Ein-/Ausgabe und Streams in Java

Mit ListIterator rückwärts gehen

  • Verwende .previous(), um in der Liste rückwärts zu gehen
// Erstelle ein ListIterator-Objekt für die Beispiel-Liste `names`
ListIterator<String> it = names.listIterator(names.size());
// Nutze .hasPrevious(), um zu prüfen, ob der Iterator den Listenanfang erreicht hat
while (it.hasPrevious()) {
    // Nutze .previous(), um Elemente in umgekehrter Reihenfolge zu holen
    System.out.println(it.previous());}
  • Elemente in Umkehrreihenfolge ausgeben, Ausgabe:
Charlie
Bob
Alice
Ein-/Ausgabe und Streams in Java

Elemente während des Iterierens ändern

  • Die Methode .set() verwenden
// Erstelle ein ListIterator-Objekt für die Beispiel-Liste names
ListIterator<String> it = names.listIterator();

// Liste durchlaufen und Elemente mit .set() ändern while (it.hasNext()) { String name = it.next(); if ("Bob".equals(name)) it.set("Bobby"); }
  • Aktualisierte names-Liste:
[Alice, Bobby, Charlie]
Ein-/Ausgabe und Streams in Java

Elemente während des Iterierens hinzufügen

  • Mit .add() Elemente hinzufügen
ListIterator<String> it = names.listIterator();

// Liste durchlaufen und Elemente mit .add() einfügen while (it.hasNext()) { String name = it.next(); if ("Charlie".equals(name)) it.add("David"); }
  • Aktualisierte names-Liste:
    [Alice, Bobby, Charlie, David]
    
Ein-/Ausgabe und Streams in Java

Zusammenfassung

  • ListIterator erweitert Iterator
    • Unterstützt Vorwärts- und Rückwärtsdurchlauf
    • Erlaubt das Ändern von Elementen beim Iterieren
  • Wichtige Methoden im Überblick

    • .next()/.previous(): Vorwärts und rückwärts navigieren
    • .set(): Aktuelles Element ändern
    • .add(): Elemente dynamisch einfügen
    • .remove(): Elemente sicher löschen
    • Funktioniert nur mit Listen (ArrayList, LinkedList usw.)
Ein-/Ausgabe und Streams in Java

Lass uns üben!

Ein-/Ausgabe und Streams in Java

Preparing Video For Download...