reduce
по существу позволяет "уменьшить" (также известный как кратный , накапливать ) элементы потоков в единственное значение.
Вам не нужно смотреть дальше, чем документация по методу redux , чтобы узнать точные предпринятые шаги:
он дает пример, говорящий, что он эквивалентендо:
boolean foundAny = false;
T result = null;
for (T element : this stream) {
if (!foundAny) {
foundAny = true;
result = element;
}
else
result = accumulator.apply(result, element);
}
return foundAny ? Optional.of(result) : Optional.empty();
, где accumulator
- это предоставленная вами функция, т.е. (x, y) -> x * 2 + y