Monday, February 16, 2026
HomeLanguagesJavaLongStream reduce(LongBinaryOperator op) in Java

LongStream reduce(LongBinaryOperator op) in Java

LongStream reduce(LongBinaryOperator op) performs a reduction on the elements of this stream, using an associative accumulation function, and returns an OptionalLong describing the reduced value, if any.

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 :

OptionalLong reduce(LongBinaryOperator op)

Parameters :

  • OptionalLong : A container object which may or may not contain a long value. If a value is present, isPresent() will return true and getAsLong() will return the value.
  • 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 : An OptionalLong describing the reduced value, if any.

Example 1 :




// Java code for LongStream reduce
// (LongBinaryOperator op)
import java.util.OptionalLong;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating a LongStream
        LongStream stream = LongStream.of(9L, 10L, 11L, 12L);
  
        // Using OptionalLong (a container object which
        // may or may not contain a non-null value)
        // Using LongStream reduce(LongBinaryOperator op)
        OptionalLong answer = stream.reduce(Long::sum);
  
        // if the stream is empty, an empty
        // OptionalLong is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsLong());
        }
        else {
            System.out.println("no value");
        }
    }
}


Output :

42

Example 2 :




// Java code for LongStream reduce
// (LongBinaryOperator op)
import java.util.OptionalLong;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating a LongStream
        LongStream stream = LongStream.of(9L, 10L, 11L, 12L);
  
        // Using OptionalLong (a container object which
        // may or may not contain a non-null value)
        // Using LongStream reduce(LongBinaryOperator op)
        OptionalLong answer = stream.reduce((a, b) -> 2 * (a * b));
  
        // if the stream is empty, an empty
        // OptionalLong is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsLong());
        }
        else {
            System.out.println("no value");
        }
    }
}


Output :

95040
RELATED ARTICLES

Most Popular

Dominic
32506 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6882 POSTS0 COMMENTS
Nicole Veronica
12005 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12099 POSTS0 COMMENTS
Shaida Kate Naidoo
7011 POSTS0 COMMENTS
Ted Musemwa
7255 POSTS0 COMMENTS
Thapelo Manthata
6967 POSTS0 COMMENTS
Umr Jansen
6956 POSTS0 COMMENTS