是否可以使用流将此方法转换为java 8?如果是的话怎么样?

时间:2018-05-24 10:25:21

标签: java-8

假设我有一个方法,它采用两个double类型的数组,而不是采用double类型的局部变量'sum',初始值为零。之后,for循环从开始到结束迭代并像这样减去a1 [i] - b [i]并将结果保存到另一个名为minus的局部变量中。比减去*减去并将它与sum变量和末尾总和中的现有值相加。 我很困惑如何使用流在java 8中实现这一点。有人能帮助我吗?

public double calculate(double[] a1, double[] b2, int start, int end) {
  double sum = 0.0;
  for(int i = start; i < end; i++) {
    final double minus = a1[i] - b2[i];
    sum += minus * minus;
  }
  return sum;
}

1 个答案:

答案 0 :(得分:5)

return IntStream.range(start, end)
            .mapToDouble(x -> a1[x] - b2[x])
            .map(x -> x * x)
            .sum();