LongStream reduce(long identity, LongBinaryOperator op) performs a reduction on the elements of this stream, using the provided identity value and an associative accumulation function, and returns the reduced value.
A reduction operation or fold takes a sequence of input elements and combines them into a single summary result, such as finding the sum or maximum of a set of numbers. An operator or function op is associative if the following holds :
(a op b) op c == a op (b op c)
This is a terminal operation i.e, it may traverse the stream to produce a result or a side-effect. After the terminal operation is performed, the stream pipeline is considered consumed, and can no longer be used.
Syntax :
long reduce(long identity, LongBinaryOperator op)
Parameters :
- identity : The identity value for the accumulating function.
- LongBinaryOperator : An operation upon two long-valued operands and producing a long-valued result.
- op : An associative, stateless function for combining two values.
Return Value : The result of the reduction.
Example 1 :
// Java code for LongStream reduce // (long identity, LongBinaryOperator op) import java.util.*; import java.util.stream.LongStream; class GFG { // Driver code public static void main(String[] args) { // Creating a LongStream LongStream stream = LongStream.of(1L, 3L, 5L, 7L, 9L); // Using LongStream reduce // (long identity, LongBinaryOperator op) long answer = stream.reduce( 0 , (num1, num2) -> (num1 + num2)); // Displaying the result System.out.println(answer); } } |
Output :
25
Example 2 :
// Java code for LongStream reduce // (long identity, LongBinaryOperator op) import java.util.*; import java.util.stream.LongStream; class GFG { // Driver code public static void main(String[] args) { // Creating a LongStream LongStream stream = LongStream.range(3L, 7L); // Using LongStream reduce // (long identity, LongBinaryOperator op) long answer = stream.reduce( 0 , (num1, num2) -> (num1 * num2) - (num1 - num2)); // Displaying the result System.out.println(answer); } } |
Output :
291