どのようにJavaでのforEachとの和とラムダ式を見つけるには?

マネー指向プログラマー:

次のスニペットは、コンパイルされません。どのように見つけるために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その上で、我々は簡単に合計を見つけることができます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=197372&siteId=1