« Alle Java-Schulungen

Java Streams Advanced – Gatherers, Spliterators & Co.

Dauer: 2 Tage
Format: virtuell oder vor Ort

Beschreibung

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

Am ersten Tag des Kurses stehen fortgeschrittene Collectors und Aggregationstechniken im Fokus. Du lernst, wie reduce(), groupingBy() und Downstream Collectors funktionieren – und entwickelst eigene Collector-Implementierungen, abgestimmt auf deine konkreten Anforderungen. Dabei bekommst du ein Gespür dafür, wann und wie Parallelisierung sinnvoll ist – und welche Fallstricke du besser vermeidest.

Am zweiten Tag tauchen wir ein in die Welt der Spliterators und der neuen Gatherers-API ab Java 22. Du erfährst, wie du mit Custom Spliterators große Datenmengen effizient aufteilst und Streams präzise steuerst. Mit Stream Gatherers baust du leistungsfähige Streaming-Operationen mit Zustand – wie Sliding Windows und Folding.

Zahlreiche Übungen und ein abschließender Refactoring-Workshop sorgen dafür, dass du das Gelernte direkt anwenden kannst – mit echtem Mehrwert für deine Projekte.

Inhouse-Schulung anfragen »

👉 Du bist mit Streams noch nicht so vertraut? Dann starte mit Java Streams Basics – Praxis-Grundlagen für EinsteigerInnen.

👉 Du möchtest das komplette Spektrum der Stream API in einem Kurs abdecken? Dann ist der Kombikurs Java Streams Basics + Advanced die passende Wahl.

Zielgruppe

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

Wenn du regelmäßig mit Streams arbeitest, deinen Code weiter verbessern willst – oder neugierig auf Custom Collectors, Gatherers oder Spliterators bist – bist du hier genau richtig.

Kursinfos

Dauer: 2 Tage
Termin nach Wunsch
Exklusiv für dein Team
In euren Räumlichkeiten oder virtuell
Kursinhalt auf Wunsch anpassbar
Sprache: deutsch oder englisch
Teilnahmezertifikat

Preise

Inhouse vor Ort:  4.360,– EUR
zzgl. Reisekosten des Trainers
Virtuell:  3.590,– EUR
Die Preise verstehen sich ohne individuelle Anpassungen und zzgl. der am Ort der Schulung anwendbaren Umsatzsteuer.

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 (Java 22+)

  • 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

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

Inhouse-Training anfragen

Anfrage Schulung Spezifischer Kurs (#30)

Euer Trainer: Sven Woltmann

Sven Woltmann

Ich bin Java-Experte mit über 20 Jahren Erfahrung – als Entwickler, Architekt, CTO, Performance-Coach und Trainer.

Ich habe bei Unternehmen wie 1&1, IONOS und ICE Services komplexe Enterprise-Systeme mit Milliarden-Datenmengen konzipiert, monolithische Altanwendungen modernisiert und Teams geholfen, robuste, wartbare und performante Java-Anwendungen zu entwickeln.

Mit HappyCoders.eu habe ich einen der meistgelesenen Java-Blogs im deutschsprachigen Raum aufgebaut. Ich halte Vorträge auf Konferenzen und Java User Groups und erhalte immer wieder das Feedback, dass ich komplexe technische Konzepte verständlich erklären kann.

Was ihr in meinen Schulungen bekommt:

  • Langjährige Erfahrung: Tiefes Java-Wissen kombiniert mit echter Projektpraxis
  • Praxisbezug: Viele Hands-On-Übungen, inspiriert von realen Projektsituationen
  • Erfahrungsaustausch: Raum für eure Fragen, Diskussionen und konkrete Herausforderungen
  • Fokus auf euer Team: Inhalte können flexibel auf eure Ziele abgestimmt werden

Ich vermittle nicht nur Features, sondern zeige euch, wie ihr mit dem richtigen Java-Verständnis langfristig bessere Software entwickelt.

Mehr über mich »

Format & Voraussetzungen

Relevante weitere Trainings