Stream-Gatherers
Gatherers für benutzerdefinierte Zwischen-Stream-Operationen verwenden.
Code-Vergleich
✕ Java 8
// Sliding window: manual implementation
List<List<T>> windows = new ArrayList<>();
for (int i = 0; i <= list.size()-3; i++) {
windows.add(
list.subList(i, i + 3));
}
✓ Java 24+
var windows = stream
.gather(
Gatherers.windowSliding(3)
)
.toList();
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Kombinierbar
Gatherers lassen sich mit anderen Stream-Operationen kombinieren.
Eingebaute Operationen
windowFixed, windowSliding, fold, scan sofort verfügbar.
Erweiterbar
Eigene Gatherers für beliebige Zwischentransformationen schreiben.
Alter Ansatz
Benutzerdefinierter Collector
Moderner Ansatz
gather()
Seit JDK
24
Schwierigkeitsgrad
Experte
JDK-Unterstützung
Stream-Gatherers
Verfügbar
In JDK 24 finalisiert (JEP 485, März 2025).
Wie es funktioniert
Gatherers sind eine neue Zwischen-Stream-Operation, die komplexe Transformationen wie gleitende Fenster, Gruppen fester Größe und Scan-Operationen ausdrücken kann, die mit Standard-Stream-Operationen nicht möglich waren.
Zugehörige Dokumentation