Streams 上級

カスタムの中間ストリーム操作にギャザラーを使用する。

✕ 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 24でファイナライズ(JEP 485、2025年3月)

ギャザラーはスライディングウィンドウ、固定サイズグループ、スキャン操作など、標準のストリーム操作では実現できなかった複雑な変換を表現できる新しい中間ストリーム操作です。

共有 𝕏 🦋 in