# DoubleStream reduce(double identity, DoubleBinaryOperator op) in Java with Examples

**DoubleStream reduce(double identity, DoubleBinaryOperator 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 : **

double reduce(double identity, DoubleBinaryOperator op)

**Parameters :**

**identity :**The identity value for the accumulating function.**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 : **The result of the reduction.

**Example 1 :**

`// Java code for DoubleStream reduce ` `// (double identity, DoubleBinaryOperator op) ` `import` `java.util.*; ` `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` `, ` `5.6` `); ` ` ` ` ` `// Using DoubleStream reduce ` ` ` `// (double identity, DoubleBinaryOperator op) ` ` ` `double` `answer = stream.reduce(` `5` `, (num1, num2) ` ` ` `-> (num1 + num2)); ` ` ` ` ` `// Displaying the result ` ` ` `System.out.println(answer); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

Output :

22.0

**Example 2 :**

`// Java code for DoubleStream reduce ` `// (double identity, DoubleBinaryOperator op) ` `import` `java.util.*; ` `import` `java.util.stream.DoubleStream; ` ` ` `class` `GFG { ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `// Creating a DoubleStream ` ` ` `DoubleStream stream = DoubleStream.of(` `2.1` `, ` `3.2` `, ` ` ` `4.3` `, ` `5.4` `, ` `6.5` `); ` ` ` ` ` `// Using DoubleStream reduce ` ` ` `// (double identity, DoubleBinaryOperator op) ` ` ` `double` `answer = stream.reduce(` `3` `, (num1, num2) ` ` ` `-> (num1 * num2) * ` `2` `); ` ` ` ` ` `// Displaying the result ` ` ` `System.out.println(answer); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

Output :

97367.96160000002

## Recommended Posts:

- DoubleStream reduce(DoubleBinaryOperator op) in Java
- Java.util.function.DoubleBinaryOperator interface with Examples
- DoubleStream min() in Java with examples
- DoubleStream max() in Java with examples
- DoubleStream noneMatch() in Java with examples
- DoubleStream boxed() in Java with Examples
- DoubleStream limit() in Java with Examples
- DoubleStream count() in Java with examples
- DoubleStream builder() in Java with Examples
- DoubleStream allMatch() in Java with examples
- DoubleStream peek() in Java with examples
- DoubleStream empty() in Java with examples
- DoubleStream filter() in Java with examples
- DoubleStream distinct() in Java with examples
- DoubleStream average() in Java with Examples

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.