- 中間操作: 中間操作は、ストリーム上で行われるフィルタリングやマッピングなどの操作です。中間操作は、新しいストリームを生成し、チェインすることができます。以下にいくつかの代表的な中間操作を示します。
- filter: 条件に一致する要素だけをストリームに残します。
- map: 要素を別の値に変換します。
- sorted: 要素をソートします。
- distinct: 重複した要素を削除します。
これらの中間操作は、要素の加工や絞り込みなどを行うために使用されます。
- 終端操作: 終端操作は、ストリームの最終的な結果を生成する操作です。ストリームを閉じるために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のストリームを効果的に使用することができます。