Java 8 是否可以使用streams将此方法转换为Java8?如果是,怎么做?

Java 8 是否可以使用streams将此方法转换为Java8?如果是,怎么做?,java-8,Java 8,假设我有一个方法,它使用两个double类型的数组,而不是使用init值为零的double类型的局部变量sum。之后,for循环从开始到结束进行迭代,并像这样进行减法运算a1[i]-b[i],然后将结果保存到另一个名为减号的局部变量中。然后执行减号*减号,并将其与sum变量中的现有值相加,最后求和。 我不知道如何在Java8中使用流实现这一点。有人能帮我吗 public double calculate(double[] a1, double[] b2, int start, int end)

假设我有一个方法,它使用两个double类型的数组,而不是使用init值为零的double类型的局部变量sum。之后,for循环从开始到结束进行迭代,并像这样进行减法运算a1[i]-b[i],然后将结果保存到另一个名为减号的局部变量中。然后执行减号*减号,并将其与sum变量中的现有值相加,最后求和。 我不知道如何在Java8中使用流实现这一点。有人能帮我吗

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;
}
公共双精度计算(双精度a1,双精度b2,整数开始,整数结束){
双和=0.0;
for(int i=start;i
至于返回和?还有一个问题,如果我应用parallel(),它会运行得很快吗?@David您可能需要很多元素,可能需要数百万个,但您需要测量。我不会添加parallel…如果我的数组是NumberVector[]而不是double[]类型,那么java 8表单将是什么?@David什么是
NumberVector
return IntStream.range(start, end)
            .mapToDouble(x -> a1[x] - b2[x])
            .map(x -> x * x)
            .sum();