BinaryOperator<Integer> operator = (l, r) -> l + r; BiFunction<Integer, Integer, Integer> function = (l, r) -> l + r; Integer reduce = Stream.of(1, 2, 3).parallel().reduce(3, function, operator); // 15 System.out.println(reduce); reduce = Stream.of(1, 2, 3).reduce(3, function, operator); // 9 System.out.println(reduce); reduce = Stream.of(1, 2, 3).reduce(3, operator); // 9 System.out.println(reduce);