ストリームギャザラー
カスタムの中間ストリーム操作にギャザラーを使用する。
コード比較
✕ 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();
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
組み合わせ可能
ギャザラーは他のストリーム操作と組み合わせられます。
組み込み操作
windowFixed、windowSliding、fold、scanがすぐに使えます。
拡張可能
任意の中間変換にカスタムギャザラーを作成できます。
旧来のアプローチ
カスタムコレクター
モダンなアプローチ
gather()
JDKバージョン
24
難易度
上級
JDKサポート
ストリームギャザラー
利用可能
JDK 24でファイナライズ(JEP 485、2025年3月)
仕組み
ギャザラーはスライディングウィンドウ、固定サイズグループ、スキャン操作など、標準のストリーム操作では実現できなかった複雑な変換を表現できる新しい中間ストリーム操作です。
関連ドキュメント