talosのプログラミング教室

Java Gold合格への道 ~StreamAPI・reduce~

スポンサーリンク

こんにちは。たろすです。

今回はStreamAPIのreduceについて説明します。

使い方

reduceは開発者がリダクション処理をカスタマイズするためのメソッドです。

以下のように使用します。

int[] array = { 1, 2, 3 };
IntStream stream = Arrays.stream(array);
System.out.println(stream.reduce((x, y) -> x * y));
OptionalInt[6]

上記はストリーム内のすべての要素を掛け合わせるコードです。

まず、xに1、yに2が入り、掛け算が実行されます。

その後、xに一度目の計算の結果である2が入り、yに3が入って掛け算が実行されることで結果は6になります。


また、初期値を設定することもできます。

int[] array = { 1, 2, 3 };
IntStream stream = Arrays.stream(array);
System.out.println(stream.reduce(2, (x, y) -> x * y));
12

一つ目の引数が初期値で、初期値にそれぞれの要素が掛け合わされていくため、結果は12になります。

こちらの戻り値はOptionalではないので要注意です。

おわりに

今回はStreamAPIのreduceについて説明しました。