Как выполнить следующие операции над массивом Long, используя Java 8 - PullRequest
0 голосов
/ 08 октября 2019

Я изучаю и изучаю лямбда-выражения в Java. У меня есть следующий код, который просто вычисляет sum массива и возвращаемую сумму

long[] temp = new long[n]; // assume that temp array has values
long tempVarible = 0L;
long result = 0L;

for (int i = 0; i < n; i++) { 
    tempVarible = tempVarible + temp[i];

    if (tempVarible > result) {
        result = tempVarible;
    }
}

return result;

Теперь я хочу преобразовать следующий код в чистый и однострочный код с лямбдами, используя API коллекции или, возможно, массивыутилита для вычисления значения переменной «result».

long[] temp = new long[n];
Stream.of(temp)   // then next ..?

1 Ответ

0 голосов
/ 08 октября 2019

Вы можете просто использовать LongStream, если массив пуст, вы получите 0 или sum

return LongStream.of(temp).sum()

или с помощью reduce

long result = LongStream.of(temp).reduce((a,b)->a+b).getAsLong();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...