Кто-нибудь может объяснить, как в этом коде работает функция уменьшения()? Я не могу понять, что он делает и почему результат равен 45.
Код:
/*
U = Stream.reduce(U identity, BiFunction accumulator, BinaryOperator combiner)
*/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Stream;
import java.util.Optional;
public class StreamDemo4
{
public static void main(String args[])
{
ArrayList myList = new ArrayList(Arrays.asList(1,2,3,4,5,6,7,8,9));
System.out.println("List = "+myList);
Stream myStream = myList.parallelStream();
System.out.print("Result = ");
Integer i = myStream.reduce(1,(a,b) -> (a*b),(a,b) -> (a+b));
System.out.println(i.intValue());
}
}
OUTPUT :-
List = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Result = 45
Подробнее здесь: https://stackoverflow.com/questions/653 ... lar-result
Почему использование Stream.reduce дает именно такой результат? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как создать реализацию functools.reduce, которая в R будет выглядеть так же, как Reduce?
Anonymous » » в форуме Python - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Std::reduce работает с диапазонами на основе целых чисел, но не с длинными.
Anonymous » » в форуме C++ - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-