Wednesday, July 3, 2024
HomeLanguagesJavaLongStream reduce(long identity, LongBinaryOperator op) in Java with Examples

LongStream reduce(long identity, LongBinaryOperator op) in Java with Examples

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

Nokonwaba Nkukhwana
Experience as a skilled Java developer and proven expertise in using tools and technical developments to drive improvements throughout a entire software development life cycle. I have extensive industry and full life cycle experience in a java based environment, along with exceptional analytical, design and problem solving capabilities combined with excellent communication skills and ability to work alongside teams to define and refine new functionality. Currently working in springboot projects(microservices). Considering the fact that change is good, I am always keen to new challenges and growth to sharpen my skills.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments