Можно ли преобразовать этот метод в Java 8, используя потоки?Если да, то как? - PullRequest
0 голосов
/ 24 мая 2018

Предположим, у меня есть один метод, который принимает два массива двойного типа, а не локальную переменную 'sum' двойного типа со значением init, равным нулю.После этого цикл for выполняет итерацию от начала до конца, вычитая таким образом a1 [i] - b [i] и сохраняя результат в другую локальную переменную с именем минус.Чем сделать минус * минус и сложить его с существующим значением в переменной суммы и в конце суммы.Я запутался, как я могу реализовать это в 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 голосов
/ 24 мая 2018
return IntStream.range(start, end)
            .mapToDouble(x -> a1[x] - b2[x])
            .map(x -> x * x)
            .sum();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...