Einführung in Streams

Ein-/Ausgabe und Streams in Java

Alex Liu

Software Development Engineer

Mit Streams arbeiten

  • Java-Streams

    • Datensammlungen funktional verarbeiten und Performance bei großen Datenmengen verbessern
    • Unterstützte Collections:
      • Listen (z. B. ArrayList, LinkedList)
      • Sets (z. B. HashSet, TreeSet)
      • Maps (Keys/Values als Streams) (z. B. HashMap, TreeMap)
      • Arrays (über Arrays.stream())
  • Beispiel-ArrayList namens names für den Rest des Videos

    names: ["Alice", "Bob", "Charlie", "David"]
    
Ein-/Ausgabe und Streams in Java

Lambda mit Stream verwenden

  • Lambda-Ausdrücke
    • Syntax: (parameters) -> { expression }
names.forEach(
    // `name` ist ein Parameter für jedes Element in der Liste
    name -> 
        // Dieser Ausdruck wird für jedes Element ausgeführt.
        System.out.println(name));
Alice 
Bob 
Charlie 
David
Ein-/Ausgabe und Streams in Java

Einen Stream erstellen

  • Datensammlung in Stream konvertieren

    • .stream() auf einer Collection verwenden
    • Unterstützt List, Set und Queue
  • Stream-Klasse importieren

    import java.util.stream.Stream;
    
  • Beispielliste names in Streams konvertieren und mit .foreach() jedes Element ausgeben
    Stream<String> stream = names.stream();
    stream.forEach(name -> System.out.println(name));
    
Ein-/Ausgabe und Streams in Java

Daten mit Streams filtern

  • Mit .filter() Elemente auswählen
    • Behält nur passende Elemente
  • Beispielliste names in Streams konvertiert
    Stream<String> stream = names.stream();
    
  • .filter() verwenden, um Elemente zu finden, die mit A beginnen, und mit .forEach() ausgeben
    stream
      .filter(name -> name.startsWith("A"))
      .forEach(name -> System.out.println(name));
    
  • Filterergebnis: Alice
Ein-/Ausgabe und Streams in Java

Elemente mit Streams zählen

  • Mit .count() Elemente zählen

    • Gibt einen Wert im Format long zurück
  • Beispielliste names in Streams konvertiert

    Stream<String> stream = names.stream();
    
  • .filter() verwenden für Elemente, die mit B beginnen, und mit .count() zählen

    long count = names.stream()
      .filter(name -> name.startsWith("B"))
      .count();
    
  • Zählergebnis: 1 (nur 1 Element Bob beginnt mit B)

Ein-/Ausgabe und Streams in Java

Wann Streams verwenden

  • Wann Streams verwenden:
    • Für große Datensätze: Verringert Overhead
    • Für funktionale Operationen: Lesbarer als Schleifen
    • Für Filtern und Transformationen: Vereinfacht Code
  • Wann Streams nicht verwenden:
    • Zum Ändern der Original-Collections
    • Für einfache Schleifen mit Seiteneffekten
Ein-/Ausgabe und Streams in Java

Lass uns üben!

Ein-/Ausgabe und Streams in Java

Preparing Video For Download...