Einführung in Iteratoren

Ein-/Ausgabe und Streams in Java

Alex Liu

Software Development Engineer

Mit Collections arbeiten

  • Beispiel-HashSet für den Rest des Videos
import java.util.HashSet;

public class SampleHashSetData { public static void main(String[] args) { HashSet<String> fruits = new HashSet<>();
fruits.add("Apple"); fruits.add("Banana");
} }
{Apple, Banana}
Ein-/Ausgabe und Streams in Java

For-Each-Schleife verwenden

  • For-Each-Schleife
    • Syntax: for (type x: collection){}
    • Verarbeitet Elemente automatisch
    • Funktioniert für mehrere Collections: List, Set, Map und mehr
  • Beispiel: verwende die Beispielmenge fruits: [Apple, Banana].
for (String x : fruits) {
    System.out.println(x);
}
Apple
Banana
Ein-/Ausgabe und Streams in Java

Eine Collection mit Iterator durchlaufen

  • Verwende Iterator<>: unterstützt List, Set, Queue und mehr
  • Iterator-Klasse importieren
import java.util.Iterator;

// Erstelle ein `Iterator`-Objekt namens `it` für die Beispielmenge `fruits` Iterator<String> it = fruits.iterator(); // Mit `.hasNext()` prüfen, ob weitere Elemente vorhanden sind while (it.hasNext()) { // Mit `.next()` das Element holen System.out.print(it.next());}
Apple Banana
Ein-/Ausgabe und Streams in Java

Elemente mit Iterator entfernen

  • Mit .remove() Elemente per Iterator entfernen

$$

Iterator<String> it = fruits.iterator();
while (it.hasNext()) {
    String fruit = it.next();
    if (fruit.startsWith("A")) {
        // Element entfernen, wenn es mit `A` beginnt
        it.remove();
        }
}
// fruits enthält nun nur noch "Banana"
Ein-/Ausgabe und Streams in Java

Elemente mit Iterator entfernen (Fortsetzung)

  • Vor dem Entfernen:

    System.out.println(fruits);
    
    [Apple, Banana]
    
  • Nach dem Entfernen:

    System.out.println(fruits);
    
    [Banana]
    
  • Gewährleistet sicheres Löschen und verhindert ConcurrentModificationException

Symbol für sicheres Löschen

Ein-/Ausgabe und Streams in Java

Zusammenfassung

  • For-Each-Schleife
    • Unterstützt
      • List(ArrayList,LinkedList)
      • Set(HashSet,TreeSet,LinkedHashSet)
      • Queue(PriorityQueue)
      • Stack(Stack)
    • Unterstützt nicht
      • Map
      • Elemententfernung
  • Iterator
    • Unterstützt
      • List(ArrayList,LinkedList)
      • Set(HashSet,TreeSet,LinkedHashSet)
      • Queue(PriorityQueue)
      • Stack(Stack)
      • Map (verwende keySet().iterator, values().iterator oder entrySet().iterator)
      • Elemententfernung
Ein-/Ausgabe und Streams in Java

Lass uns üben!

Ein-/Ausgabe und Streams in Java

Preparing Video For Download...