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

Da*_*vid 2 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;
}
Run Code Online (Sandbox Code Playgroud)

Eug*_*ene 5

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

  • @David你需要很多元素,可能需要数百万,但你需要衡量.我不会添加并行... (4认同)