Core Java & JVM-SprachenCore Java & JVM-Sprachen

Stream Gatherers – Schreibe deine eigenen Stream-Operationen

Java
java 24
java stream gatherers
java streams
stream gatherers

Abstract


Thu 15:35 - 16:20 Uhr | 2025

Die Java-Stream-API wurde mit Java 8 im März 2014 veröffentlicht und hat uns ein unverzichtbares Werkzeug an die Hand gegeben, um Daten zu verarbeiten.

Doch der begrenzte Satz an intermediären Operationen – `filter`, `map`, `flatMap`, `mapMulti`, `distinct`, `sorted`, `peak`, `limit`, `skip`, `takeWhile` und `dropWhile` – führt dazu, dass komplexere Datentransformationen durch die Stream-API nicht ausgedrückt werden können.

Es fehlen z. B. Operationen wie `window` und `fold` und zahlreiche mehr, wenn man sich die Feature-Requests der Community ansieht.

Anstatt nun all diese Operationen ins Stream-Interface zu integrieren, entwickelte das JDK-Team eine neue API, die zum einen im JDK selbst genutzt wird, um heiß begehrte intermediäre Operationen bereitzustellen, und mit der zum anderen Entwicklerinnen und Entwickler ihre eigenen Operationen implementieren können.

Diese neue API heißt „Stream Gatherers“ und wurde in Java 22 im März 2024, also genau zehn Jahre nach der Einführung der Stream-API, zum ersten mal als Preview-Feature (JEP 461) veröffentlicht. In Java 23 wurde die neue API ohne Änderungen in eine zweite Preview-Runde geschickt (JEP 473).

In diesem Talk erfahrt ihr in Theorie und Praxis (inklusive Live-Coding), was Stream Gatherers sind und wie sie funktionieren, welche Gatherer im JDK bereits verfügbar sind und wie ihr sie effektiv einsetzt, wie ihr selbst eigene Gatherer implementieren könnt und wo die Grenzen der neuen API liegen.

Non-Sponsored TalkFortgeschritteneDeutsch
Sven Woltmann

Sven Woltmann

HappyCoders GmbH

Sven Woltmann ist Java-Entwickler der ersten Stunde. Er arbeitet als unabhängiger Entwickler und Trainer mit Schwerpunkt auf skalierbaren Unternehmensanwendungen, Optimierung von Algorithmen, Clean Code und Clean Architecture. Er teilt sein Wissen über Java, Architektur, Algorithmen und Datenstrukturen in Videos, seinem Newsletter und seinem Blog https://www.happycoders.eu/.