Java Streams

Aufgabe: Java Streams Recherche

1. Grundlagen

Was genau ist ein "Stream" in Java? Ist es eine Datenstruktur? Recherchiere die Definition und den Hauptzweck.

2. Pipeline Phasen

Was unterscheidet Intermediate von Terminal Operations? Finde je drei Beispiele für beide Kategorien.

3. Filter & Map

Wie funktionieren filter() und map()? Erkläre den Unterschied: Was geht rein, was kommt raus?

4. Lazy Evaluation

Was bedeutet "Lazy Evaluation" im Kontext von Streams? Warum macht das Java Streams effizient?

Streams bewerten & anwenden

Vorteile

Warum Streams nutzen?

  • Deklarativer Stil
  • Parallelisierung (parallelStream)
  • Weniger Boilerplate

Herausforderungen

Wann sind sie kritisch?

  • Debugging-Schwierigkeit
  • Performance-Overhead bei kleinen Daten
  • Lesbarkeit bei komplexen Ketten

Das Paradigma

Streams bringen einen neuen Denkansatz in Java:

Deklarativ vs. Imperativ:
Was ist der Unterschied zwischen "Wie" etwas getan wird und "Was" getan werden soll?
Functional Programming:
Welche Rolle spielen Lambdas und Method References bei Streams?
Side Effects:
Warum sollten Stream-Operationen "effektfrei" sein?

Praktische Anwendungsfälle

Recherchiert konkrete Code-Beispiele für folgende Szenarien:

1. Data Filtering

Listen nach Kriterien filtern (z.B. alle Produkte finden, die vorrätig sind oder Nutzer ab 18 Jahren).

2. Transformation (Mapping)

Objekte in andere Formate umwandeln (z.B. eine Liste von User-Objekten in eine Liste von E-Mail-Adressen konvertieren).

3. Aggregation & Statistik

Daten zusammenfassen (z.B. den Durchschnittspreis aller Produkte berechnen oder Elemente nach Kategorien gruppieren).