Java Streams Advanced –
Gatherers, Spliterators & Co.

Streams kennt ihr – aber wann sind Parallel Streams wirklich schneller, und wann bremsen sie? Wie baut man Custom Collectors, die sich sauber mit groupingBy() kombinieren lassen? Und was ermöglichen Stream Gatherers (ab Java 24), das vorher schlicht nicht möglich war?

In zwei Tagen bringt dieser Kurs euer Team auf das nächste Level der Java Streams API – verständlich erklärt und direkt anwendbar.

Jetzt unverbindlich anfragen
2 Tage
Individueller
Termin
Vor Ort oder
Online
Deutsch /
Englisch
Kursinhalt
konfigurierbar
Teilnahme-
zertifikat

Was ihr in dieser Schulung lernt

💡 Neu bei Java Streams? → Java Streams Basics Schulung
✅ Streams bereits bekannt, bereit für mehr? → Ihr seid hier richtig.

In diesem zweitägigen Aufbaukurs lernt ihr, wie ihr die Java Stream API in der Tiefe versteht und fortgeschrittene Techniken wie Custom Collectors, Gatherers und Spliterators gezielt einsetzt.

Am ersten Tag stehen fortgeschrittene Collectors und Aggregationstechniken im Fokus. Ihr lernt, wie ihr mit groupingBy() Daten flexibel gruppiert, Downstream Collectors kombiniert und reduce() für anspruchsvolle Aggregationen einsetzt – und entwickelt anschließend eigene Collector-Implementierungen für eure konkreten Anforderungen. Dabei bekommt ihr ein Gespür dafür, wann und wie Parallelisierung sinnvoll ist – und welche Fallstricke ihr besser vermeidet.

Am zweiten Tag tauchen wir ein in die Welt der Spliterators und der Gatherers-API – seit Java 24 fester Bestandteil der Stream API. Ihr erfahrt, wie ihr mit Custom Spliterators große Datenmengen effizient aufteilt und Streams präzise steuert. Mit Stream Gatherers baut ihr leistungsfähige Streaming-Operationen mit Zustand – wie Sliding Windows und Folding.

Zahlreiche Übungen und ein abschließender Refactoring-Workshop sorgen dafür, dass ihr das Gelernte direkt anwenden könnt – mit echtem Mehrwert für eure Projekte.

👉 Du möchtest das komplette Spektrum der Stream API in einem Kurs? → Kombikurs Java Streams Basics + Advanced

👉 Euer Team arbeitet noch mit Java 17 oder 21? Dann könnte auch unsere Java-25-Schulung interessant für euch sein.

Zielgruppe

Der Kurs richtet sich an erfahrene Java-Entwickler:innen, die bereits mit Streams gearbeitet haben und jetzt tiefer in fortgeschrittene Themen einsteigen möchten.

Wenn ihr regelmäßig mit Streams arbeitet, euren Code weiter verbessern wollt – oder neugierig auf Custom Collectors, Gatherers oder Spliterators seid – seid ihr hier genau richtig.

Preise

Inhouse:  5.260,– EUR
zzgl. Reisekosten des Trainers
Virtuell:  4.380,– EUR
Die Preise verstehen sich ohne individuelle Anpassungen und zzgl. der am Ort der Schulung anwendbaren Umsatzsteuer.
Jetzt anfragen

Wie ihr lernt

Das Training ist interaktiv und praxisnah aufgebaut: Nach kurzen Theorie-Phasen folgt direkt die Anwendung am Code mit Beispielen aus echten Projekten.

Ihr arbeitet gemeinsam an konkreten Szenarien, diskutiert Lösungen und erhaltet direktes Feedback.

So bleibt das Wissen nachhaltig im Team verankert – nicht nur theoretisch, sondern im täglichen Coding.

Agenda

Die Themen bauen systematisch aufeinander auf. Wir wechseln zwischen fortgeschrittener Theorie, konkreten Anwendungsfällen und praxisorientierten Übungen – immer mit Blick auf Performance, Lesbarkeit und Wartbarkeit.

Advanced Collectors und Reduce Operations

  • reduce() für Aggregationen: Konzepte und praktische Anwendung
  • peek() für Debugging: Wann sinnvoll, wann nicht
  • Grouping: groupingBy(), partitioningBy()
  • Downstream Collectors: counting(), summingInt(), averagingDouble()
  • Nested Grouping und komplexe Aggregationen
  • joining() für String-Operationen
  • Praktische Übungen: Komplexe Datenanalyse mit Collectors

Custom Collectors entwickeln

  • Collector Interface verstehen: supplier(), accumulator(), combiner(), finisher()
  • Characteristics: CONCURRENT, IDENTITY_FINISH, UNORDERED
  • Einfache Custom Collectors implementieren
  • Komplexere Scenarios: Custom Object Collection
  • Praktische Übungen: Eigene Collectors schreiben

Stream Performance und Spliterator Grundlagen

  • Wann Streams verwenden vs. traditionelle Schleifen
  • Performance-Fallen: Boxing/Unboxing, zu lange Pipelines
  • Parallel Streams: Wann sinnvoll, Common Fork/Join Pool
  • Memory-Effizienz und große Datenmengen
  • Spliterator verstehen: Was ist ein Spliterator und seine Rolle
  • Spliterator Characteristics: ORDERED, SIZED, SUBSIZED, CONCURRENT, etc.
  • Wie Characteristics die Stream-Performance beeinflussen

Legacy Code Refactoring Workshop

  • Gemeinsame Refactoring-Session: Schleifen zu Streams
  • Identifikation geeigneter Refactoring-Kandidaten
  • Schritt-für-Schritt Transformation von Legacy Code
  • Performance-Vergleiche: Vorher/Nachher
  • Code-Readability vs. Performance Trade-offs
  • Wann Refactoring sinnvoll ist und wann nicht
  • Praktische Übungen: Verschiedene Legacy-Szenarien

Fortgeschrittene Stream-Patterns und Custom Spliterators

  • Conditional Operations mit Optional
  • Error Handling in Streams
  • Custom Spliterator implementieren: Eigene Datenstrukturen für Streams
  • Spliterator Patterns: tryAdvance(), trySplit(), estimateSize()
  • Parallelisierung optimieren durch custom Spliterators
  • Stream von Files: Lines, Directory Walking
  • Infinite Streams: generate(), iterate()
  • Praktische Übungen: Custom Spliterator für spezielle Datenstrukturen

Stream Gatherers (ab Java 22, finalisiert in Java 24)

  • Was sind Stream Gatherers und warum wurden sie eingeführt
  • Gatherer Interface verstehen: integrator(), combiner(), finisher()
  • Built-in Gatherers: fold(), scan(), windowFixed(), windowSliding()
  • Custom Gatherers implementieren
  • State Management in Gatherers
  • Praktische Übungen: Eigene Gatherers für spezielle Use Cases

Einen ersten Überblick gibt der Artikel zu Stream Gatherers auf HappyCoders.eu.

Integration und Architecture Patterns

  • Streams in Repository Pattern
  • Functional Programming Principles mit Streams
  • Stream-basierte APIs designen
  • Migration Strategies: Legacy Code zu Streams
  • Anti-Patterns und Debugging: Typische Fehler vermeiden
  • Testing von Stream-Code

Workshop und Problemlösung

  • Komplexes Praxisprojekt: Ende-zu-Ende Stream-Pipeline
  • Code Review Session: Teilnehmer-Code analysieren
  • Performance-Optimierung an realen Beispielen
  • Q&A und individuelle Problemstellungen
  • Best Practices Zusammenfassung

Das klingt nach genau dem, was dein Team braucht?

Jetzt unverbindlich anfragen

Warum mit mir lernen?

Ich arbeite seit über 20 Jahren als Entwickler, CTO, Trainer, Autor und Speaker mit Java.

 In dieser Zeit habe ich Unternehmen geholfen, komplexe Java-Systeme zu modernisieren, performanten Code zu schreiben und Teams nachhaltig weiterzuentwickeln.
Mit HappyCoders.eu habe ich einen der meistgelesenen Java-Blogs im deutschsprachigen Raum aufgebaut und halte regelmäßig Vorträge auf Konferenzen und User Groups.
Mein Ziel: komplexe Themen so vermitteln, dass sie verständlich, praxisnah und direkt anwendbar sind.

⭐⭐⭐⭐⭐
Bewertet mit 4,97 von 5 auf ProvenExpert

Mehr über mich

Noch Fragen?

Teilnahme & Buchung

Können Einzelpersonen das Training buchen?

Dieses Training ist ausschließlich für Teams buchbar. Wenn du als Einzelperson teilnehmen möchtest, biete ich zwei Kurse über ppedv an:

Wie viele Teilnehmer:innen sind möglich?

Ich empfehle maximal 12 Teilnehmer:innen pro Training. So kann ich alle individuell betreuen. Eine Mindestanzahl gibt es nicht – ich berechne pro Training, nicht pro Person.

Wie läuft die Buchung ab?

Am einfachsten über das Anfrageformular oder per E-Mail an schulung@happycoders.eu. Direkt nach dem Absenden kannst du über Calendly einen Video-Call buchen, in dem wir die Details besprechen. Danach bekommst du ein konkretes Angebot von mir.

Voraussetzungen

Welche Java-Vorkenntnisse werden vorausgesetzt?

Der Kurs setzt voraus, dass du bereits praktische Erfahrung mit der Stream API hast – du solltest mit filter(), map(), collect() und den gängigen Standard-Collectors vertraut sein.

Wer noch nie mit Streams gearbeitet hat, ist im Basics-Kurs besser aufgehoben.

Welche technischen Voraussetzungen brauchen wir?

Alle Teilnehmer:innen brauchen eine aktuelle IDE mit mindestens Java 24 – ich selbst verwende IntelliJ IDEA. Auch im Terminal sollte mindestens Java 24 installiert sein, da wir einige der Übungen im Terminal durchführen werden.

Ablauf & Inhalte

Wie läuft ein Trainingstag zeitlich ab?

Pro Tag gibt es 6 Stunden Netto-Training – in der Regel mit zwei kurzen Breaks und einer längeren Mittagspause dazwischen. Den genauen Zeitplan stimmen wir auf eure Arbeitszeiten ab – das lässt sich flexibel regeln.

Wie viel Zeit entfällt auf Theorie, wie viel auf Praxis?

Etwa zur Hälfte Theorie, zur Hälfte Praxis: Auf eine kurze Theoriephase folgt direkt die Anwendung am Code – mit Beispielen aus echten Projekten. Reines Zuhören hilft wenig; das Wissen muss sofort benutzt werden, damit es bleibt.

Können wir einzelne Themen aus der Agenda anpassen oder priorisieren?

Ja, das ist problemlos möglich. Themen streichen oder stärker gewichten – solange ich dafür die Trainingsunterlagen nicht umbauen muss, entstehen keine Extrakosten.

Wer umfangreichere Änderungen braucht – zum Beispiel Inhalte aus verschiedenen Kursen kombinieren oder ganz neue Themen aufnehmen – dem erstelle ich gerne ein individuelles Angebot.

Was genau bedeutet „Kursinhalt konfigurierbar"?

Innerhalb der bestehenden Agenda lässt sich die Gewichtung anpassen: Themen kürzen, Schwerpunkte setzen, Reihenfolge ändern. Das geht ohne Aufpreis.

Darüber hinaus sind auch tiefgreifendere Anpassungen möglich – etwa eine Kombination von Inhalten aus verschiedenen Kursen oder komplett neue Themenblöcke. Das ist mit Mehraufwand verbunden, daher erstelle ich dafür ein individuelles Angebot.

Format & Materialien

Welche Plattform nutzen wir beim virtuellen Training?

In der Regel verwenden wir Zoom. Wenn ihr eine eigene Plattform bevorzugt – zum Beispiel Microsoft Teams oder Google Meet – arbeite ich gerne damit. Sagt mir einfach vorab Bescheid.

Bekommen die Teilnehmer:innen Unterlagen zum Mitnehmen?

Ja. Vor dem Training erhaltet ihr die Übungsaufgaben als Git-Repository, damit ihr direkt loslegen könnt. Nach dem Training bekommt ihr außerdem die Folien – inklusive aller Lösungen zu den Übungsaufgaben.

Preise & Kosten

Was ist in den Reisekosten inbegriffen?

Die Reisekosten werden als Pauschale berechnet – abhängig vom Veranstaltungsort und der Anzahl der benötigten Übernachtungen. Die genaue Summe ist Bestandteil des individuellen Angebots, das ich dir zuschicke.

Gibt es Rabatte bei mehreren gebuchten Trainings?

Ja. Bei mehreren gebuchten Trainings oder Folgebuchungen kann ich einen Mengenrabatt anbieten. Das besprechen wir im Video-Call und ich halte das im Angebot fest.

Passt das für euer Team?

Schreib mir einfach – ich antworte in der Regel innerhalb von 24 Stunden.
Oder buch direkt einen kostenlosen Video-Call, in dem wir alles Wichtige besprechen.
Jetzt unverbindlich anfragen