我试图弄清楚如何总结一个' ArrayList'的所有元素。
我已经尝试过了:
double totalevent = myList.stream().mapToDouble(f -> f).sum();
myList
是ArrayList<Double>
。
有没有办法没有无用的mapToDouble
函数?
答案 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
。