在C#中我有这个
List<Learner> Learners;
double learnerSum = this.Learners.Sum(learner => learner.Predicted * learner.Alpha);
我想在java 8中做同样的事情。我得到了
double learnerSum = this.Learners.stream()...
似乎我需要一个reduce,但所有的例子都在简单的整数数组上。我错过了什么?
答案 0 :(得分:4)
您可以从DoubleStream
创建Stream
,并使用方法sum
获取总和。
double learnerSum = Learners.stream()
.mapToDouble(l -> l.Predicted * l.Alpha).sum();
答案 1 :(得分:0)
除非有更好的解决方案,否则这似乎有效。
Learners.stream().collect(Collectors.summingDouble(learner -> learner.Predicted * learner.Alpha ));