Was ihr in dieser Schulung lernt
In diesem eintägigen Kurs lernt ihr die Grundlagen der Java Streams API kennen – mit klaren Erklärungen, praxisnahen Beispielen und vielen Übungen.
Ihr erfahrt, wie sich Streams von klassischen Collections unterscheiden – und warum sie ein so leistungsfähiges Werkzeug für moderne Datenverarbeitung in Java sind.
Anhand praxisnaher Szenarien schauen wir uns gemeinsam den Aufbau einer Stream-Pipeline an – von der Datenquelle über Transformationen wie Stream.map(), flatMap() und filter() bis hin zur abschließenden Verarbeitung: collect(), reduce() und das Zusammenfassen von Ergebnissen in eine Map mit toMap(). Ihr lernt, wann welche Operation sinnvoll ist – und wo typische Stolperfallen lauern.
Ein besonderer Fokus liegt auf dem Verständnis der dahinterliegenden Konzepte: Was passiert wann? Was wird wirklich ausgeführt – und was nicht? Was bedeutet Lazy Evaluation konkret – und worauf müsst ihr dabei im Projektalltag achten?
Am Ende des Tages könnt ihr Streams sicher einsetzen, komplexe Datenoperationen mit Collectors aggregieren, Werte mit reduce() zusammenführen und funktionale Programmierung gezielt im Projektalltag nutzen.
👉 Du hast bereits Erfahrung mit Streams und willst tiefer einsteigen? Dann schau dir Java Streams Advanced – Gatherers, Spliterators & Co. an.
👉 Du möchtest das komplette Spektrum der Stream API in einem Kurs abdecken? Dann ist der Kombikurs Java Streams Basics + Advanced ideal für dich.
💡 Noch nicht sicher, ob Streams das Richtige für euch sind? Mein Artikel Java Streams (mit Beispielen) gibt dir einen Vorgeschmack auf die Möglichkeiten der Stream API.
Zielgruppe
Dieser Kurs richtet sich an Java-Entwickler:innen, die Streams und funktionale Programmierung systematisch von Grund auf lernen möchten.
Ob ihr Streams bisher gemieden habt, nur oberflächlich damit gearbeitet habt oder euer Wissen auffrischen wollt – hier baut ihr ein solides Fundament für den produktiven Einsatz im Projektalltag.
Wenn ihr bisher lieber Schleifen geschrieben habt, weil euch Streams zu abstrakt erschienen: Nach diesem Kurs werdet ihr wissen, wann und wie ihr sie gezielt einsetzen könnt.
Agenda
Wir wechseln im Kurs zwischen kurzen Theorieeinheiten, praktischen Codebeispielen und interaktiven Übungen. So lernt ihr die Grundlagen der Stream API strukturiert und praxisnah kennen.
Funktionale Programmierung in Java:
- Lambda-Ausdrücke: Syntax, Typen und Verwendung
- Funktionale Interfaces (
Consumer, Supplier, Function, Predicate, etc.) - Methodenreferenzen: Static, Instance, Constructor References
- Praktische Übungen: Lambda-Ausdrücke vs. anonyme Klassen
Stream-Grundlagen:
- Was ist ein Stream? Konzeptuelle Unterschiede zu Collections
- Stream-Pipeline Anatomie: Source → Intermediate Operations → Terminal Operations
- Lazy Evaluation und ihre Auswirkungen
- Stream-Erstellung: von Collections, Arrays, Files, Ranges
- Primitive Streams:
IntStream, LongStream, DoubleStream - Praktische Übungen: Erste Stream-Pipelines mit primitiven Streams
Intermediate Operations Deep Dive:
- Transformationen mit
map(), flatMap(), filter() - Auswahl und Sortierung:
distinct(), sorted(), limit(), skip() - Debugging mit
peek() – richtig eingesetzt - Chaining von Operations und Performance-Aspekte
- Praktische Übungen: Komplexere Datenverarbeitung
Terminal Operations:
collect() – der vielseitigste Terminal Operator- Eingebaute Collectors:
toList(), toSet(), toMap() – Stream to Map leicht gemacht Stream.toList() und wie es sich von Collectors.toList() unterscheidetforEach(), forEachOrdered()reduce() für Aggregationen- find-Operationen:
findFirst(), findAny() – Rückgabetyp Optional verstehen und richtig verwenden - Matching-Operationen:
allMatch(), anyMatch(), noneMatch() - Praktische Übungen: Terminal Operations mit Standard-Collectors
Agenda als PDF