Javaのreduce関数は何をしますか?
Stream API のメソッドの 1 つである reduce 関数は、ストリーム内の要素を指定の操作 (加算、合計、連結など) で結合するために使用されます。reduce 関数は 2 項演算子をパラメーターとして受け取り、初期値を指定できます。
reduce関数は、ストリーム内の要素を順次受け取り、指定された2項演算子で結合して最終的な結果を生成します。ストリーム内の要素は左から右へ順次結合され、毎回前の結合結果と現在の要素が2項演算子に渡されます。これにより、すべての要素が計算に組み込まれ、最終的には1つの結果が返されます。
reduce関数を用いて整数のリストの合計を求める方法の例を示します。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(sum); // 输出15
上の例では、初期値が0で、2項演算子は単純な加算です。reduce関数を呼び出すことで、初期値とリストの各要素が順次加算され、最終的に15という合計値が得られます。
reduce関数はOptionalオブジェクトを返すので、Nullの可能性がある場合の対応を適切な方法で行う必要があります。