Почему использование Stream.reduce дает именно такой результат?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему использование Stream.reduce дает именно такой результат?

Сообщение Anonymous »

Кто-нибудь может объяснить, как в этом коде работает функция уменьшения()? Я не могу понять, что он делает и почему результат равен 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»