パッケージjava.util.streamの説明

コレクションに対するマップ-リデュース変換など、要素のストリームに対する関数型の操作をサポートするクラスです。たとえば、


     int sum = widgets.stream()
                      .filter(b -> b.getColor() == RED)
                      .mapToInt(b -> b.getWeight())
                      .sum();

ここでは、Collection<Widget>であるwidgetsをストリームのソースとして使用した後、そのストリームに対してフィルタ-マップ-リデュースを実行し、赤いウィジェットの重量の合計を取得しています。(合計はリダクション操作の一例です。)

このパッケージで導入された主な抽象は、ストリームです。クラスStreamIntStreamLongStreamおよびDoubleStreamは、オブジェクトおよびプリミティブ型intlongおよびdoubleに対するストリームです。ストリームはいくつかの点でコレクションと異なります。

ストリームはさまざまな方法で取得できます。いくつかの例を以下に示します。

サードパーティー・ライブラリは、これらのテクニックを使って追加のストリーム・ソースを提供できます。

ストリーム操作とパイプライン