We have implemented all the parameters of the reduce() method as lambda expressions. The first two versions of the reduce() method receive a BinaryOperator and the third version receives a BiFunction and a BinaryOperator. If you want to reuse a complex operator, you can implement a class that implements the necessary interface and use an object of that class as the parameter to these and to the other methods of the Stream class.