マネー指向プログラマー:
次のスニペットは、コンパイルされません。どのように見つけるためにsum
使用してforEach
以下のように?
private int Sum(ArrayList<Integer> inputs) {
int sum = 0;
inputs.stream().forEach(x -> sum += x);
return sum;
}
ニコラスK:
これは、トリックを行う必要があります。
private int Sum(ArrayList<Integer> inputs) {
return inputs.stream().mapToInt(Integer::intValue).sum();
}
EDIT:
使用に伴う問題はfor-each
、それが上の仕事に私たちのために別の中間ストリームを生成しないことを意味し、端末操作、ということです。より良いアプローチは、使用することですmapToInt
生産するIntStream
その上で、我々は簡単に合計を見つけることができます。