Softwareentwicklung mit Java: Flexible Datenverarbeitung mit Stream Gatherers
Stream Gatherers erweitern die Java-Stream-API um benutzerdefinierte Intermediate Operations, die die Daten bearbeiten können. So sind Transformationen möglich.
- Michael Inden
In Java 24 gelten die in Java 22 eingefĂĽhrten Stream Gatherers als stabil (JEP 485). FĂĽr Streams lassen sich ĂĽber Intermediate Operations verschiedene Aktionen wie Filtern und Transformationen durch Methoden beschreiben. Die dadurch definierte Verarbeitung findet erst beim Aufruf einer Terminal Operation statt, danach wird die Stream-Pipeline elementweise abgearbeitet.
Die vordefinierten Intermediate Operations decken bereits verschiedene Anwendungsfälle ab, jedoch sind nicht alle Anforderungen erfüllbar. Zudem ist es bislang nicht möglich, auf schon verarbeitete Elemente oder einen Zustand zuzugreifen und ihn beim Bearbeiten in einer Intermediate Operation zu berücksichtigen.
- Mit Java 24 sind Stream Gatherers als finales Feature ins JDK integriert worden (JEP 485).
- Sie ergänzen die bereits mächtige Stream-API um neue Funktionen, ohne die API komplizierter in der Handhabung zu machen.
- Entwicklerinnen und Entwickler haben mehr Kontrolle darĂĽber, wie Elemente durch eine Stream-Pipeline flieĂźen.
- Stream Gatherers lassen sich zu komplexen Aktionen kombinieren, um groĂźe Datenmengen effizient nach bestimmten Kriterien zu verarbeiten.
Diese LĂĽcke schlieĂźt nun die Methode gather(Gatherer) als Intermediate Operation. Mit dem Typ Gatherer lassen sich Transformationen bereitstellen. Dabei kann man neben eigenen Realisierungen auf bestehende Built-in-Operationen zurĂĽckgreifen, die im JDK in der Utility-Klasse Gatherers definiert sind.