总结 ArrayList<Double> via Java Stream

Sum up ArrayList<Double> via Java Stream

我正在尝试弄清楚如何总结 'ArrayList' 的所有元素。

我已经试过了:

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

myListArrayList<Double>

有没有没有无用的 mapToDouble 功能的方法?

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 库中,您可以直接从 Collection<Double>:

构造一个 DoubleStream
double totalevent = DoubleStreamEx.of(myList).sum();

但是在内部 also uses mapToDouble.