通过Java Stream汇总ArrayList <double>

时间:2015-06-24 22:24:55

标签: double java-8 java-stream

我试图弄清楚如何总结一个&#39; ArrayList&#39;的所有元素。

我已经尝试过了:

 double totalevent = myList.stream().mapToDouble(f -> f).sum();

myListArrayList<Double>

有没有办法没有无用的mapToDouble函数?

1 个答案:

答案 0 :(得分:25)

mapToDouble调用没有用处:它执行隐式拆箱。实际上和

一样
double totalevent = myList.stream().mapToDouble(f -> f.doubleValue()).sum();

或者

double totalevent = myList.stream().mapToDouble(Double::doubleValue).sum();

或者你可以使用summingDouble收藏家,但这并没有太大区别:

double totalevent = myList.stream().collect(summingDouble(f -> f));

在我的StreamEx库中,您可以直接从DoubleStream构建Collection<Double>

double totalevent = DoubleStreamEx.of(myList).sum();

但在内部also uses mapToDouble