Friday, October 10, 2025
HomeLanguagesJavaDoubleStream reduce(DoubleBinaryOperator op) in Java

DoubleStream reduce(DoubleBinaryOperator op) in Java

DoubleStream reduce(DoubleBinaryOperator op) performs a reduction on the elements of this stream, using an associative accumulation function, and returns an OptionalDouble 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 :

OptionalDouble reduce(DoubleBinaryOperator op)

Parameters :

  • OptionalDouble : A container object which may or may not contain a long value. If a value is present, isPresent() will return true and getAsDouble() will return the value.
  • DoubleBinaryOperator : An operation upon two double-valued operands and producing a double-valued result.
  • op : An associative, stateless function for combining two values.

Return Value : An OptionalDouble describing the reduced value, if any.

Example 1 :




// Java code for DoubleStream reduce
// (DoubleBinaryOperator op)
import java.util.OptionalDouble;
import java.util.stream.DoubleStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating a DoubleStream
        DoubleStream stream = DoubleStream.of(1.2, 2.3, 3.4, 4.5);
  
        // Using OptionalDouble (a container object which
        // may or may not contain a non-null value)
        // Using DoubleStream reduce(DoubleBinaryOperator op)
        OptionalDouble answer = stream.reduce(Double::sum);
  
        // if the stream is empty, an empty
        // OptionalDouble is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsDouble());
        }
        else {
            System.out.println("Stream is empty");
        }
    }
}


Output :

11.4

Example 2 :




// Java code for DoubleStream reduce
// (DoubleBinaryOperator op)
import java.util.OptionalDouble;
import java.util.stream.DoubleStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating a DoubleStream
        DoubleStream stream = DoubleStream.of(1.2, 2.3, 3.4, 4.5);
  
        // Using OptionalDouble (a container object which
        // may or may not contain a non-null value)
        // Using DoubleStream reduce(DoubleBinaryOperator op)
        OptionalDouble answer = stream.reduce((a, b)
                                  -> (a * b) * (a * b));
  
        // if the stream is empty, an empty
        // OptionalDouble is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsDouble());
        }
        else {
            System.out.println("Stream is empty");
        }
    }
}


Output :

9111992.471343633
RELATED ARTICLES

Most Popular

Dominic
32350 POSTS0 COMMENTS
Milvus
87 POSTS0 COMMENTS
Nango Kala
6718 POSTS0 COMMENTS
Nicole Veronica
11880 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11941 POSTS0 COMMENTS
Shaida Kate Naidoo
6838 POSTS0 COMMENTS
Ted Musemwa
7101 POSTS0 COMMENTS
Thapelo Manthata
6794 POSTS0 COMMENTS
Umr Jansen
6794 POSTS0 COMMENTS