Java 8 Streamでの中間操作と終端操作の概要


  1. 中間操作: 中間操作は、ストリーム上で行われるフィルタリングやマッピングなどの操作です。中間操作は、新しいストリームを生成し、チェインすることができます。以下にいくつかの代表的な中間操作を示します。
  • filter: 条件に一致する要素だけをストリームに残します。
  • map: 要素を別の値に変換します。
  • sorted: 要素をソートします。
  • distinct: 重複した要素を削除します。

これらの中間操作は、要素の加工や絞り込みなどを行うために使用されます。

  1. 終端操作: 終端操作は、ストリームの最終的な結果を生成する操作です。ストリームを閉じるために1回だけ実行されます。以下にいくつかの代表的な終端操作を示します。
  • forEach: 各要素に対して指定されたアクションを実行します。
  • collect: ストリームの要素をコレクションや配列に集めます。
  • count: ストリームの要素の数をカウントします。
  • reduce: 要素を結合したり集計したりします。

これらの終端操作は、ストリームのデータを処理したり結果を取得するために使用されます。

例えば、以下のようなコードで中間操作と終端操作を組み合わせて使用することができます。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> filteredAndDoubled = numbers.stream()
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2)
    .collect(Collectors.toList());
System.out.println(filteredAndDoubled); // 出力: [4, 8]

上記のコードでは、まずfilterメソッドで偶数の要素をフィルタリングし、次にmapメソッドでそれぞれの要素を2倍にします。最後にcollectメソッドで結果をリストとして収集します。

これにより、中間操作と終端操作を使ってストリームを柔軟に操作する方法が示されています。

以上のような中間操作と終端操作を活用することで、Java 8のストリームを効果的に使用することができます。