Java 8 では、Stream に reduce メソッドがあります。
T reduce(T identity, BinaryOperator<T> accumulator);
アキュムレータ演算子は、その引数のいずれかを変更できますか? すべての例は、コレクションの要素を変更するのではなく、コレクションを変更することについて話していますが、JavaDoc がアキュムレータは NonInterfering であるべきだと言っているので、そうではないと思います。
したがって、具体的な例として、
integers.reduce(0, Integer::sum);
しばらくの間、Integer
変更可能sum
で、2 番目のパラメーターの値を (その場で) 追加することによって最初のパラメーターを変更できるとしますか?
そうではないと思いますが、この干渉が問題を引き起こす場所の例も知りたいです。