Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Java | Collectors averagingLong (ToLongFunction mapper) with Examples

  • Last Updated : 06 Dec, 2018

Collectors averagingLong(ToLongFunction<? super T> mapper) method is used to find the mean of the long values passed in the parameters. This method returns a Collector that produces the arithmetic mean of an long-valued function applied to the input elements. If no elements are passed as the input elements, then this method returns 0.

The formula used by this method to calculate arithmetic mean is:

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

  {\displaystyle A={\frac {1}{n}}\sum _{i=1}^{n}a_{i}={\frac {a_{1}+a_{2}+\cdots +a_{n}}{n}}}

Syntax:



public static <T> 
    Collector<T, ?, Double> 
        averagingLong(ToLongFunction<? super T> mapper)

where the terms are as follows:

  • Interface Collector<T, A, R>: A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming the accumulated result into a final representation after all input elements have been processed. Reduction operations can be performed either sequentially or in parallel.
    • T: The type of input elements to the reduction operation.
    • A: The mutable accumulation type of the reduction operation.
    • R: The result type of the reduction operation.
  • Double: The Double class wraps a value of the primitive type double in an object. An object of type Double contains a single field whose type is double.
  • ToLongFunction : Represents a function that produces a long-valued result.

Parameters: This method accepts a parameter mapper which is long-valued stream converted into Long using ToLongFunctions. ToLongFunction is a function which extracts a long type of value as it works on the objects of the stream.

Below are examples to illustrate averagingLong() method:

Program 1:




// Java code to show the implementation of
// averagingLong(ToLongFunction mapper) function
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a string stream
        Stream<String> s = Stream.of("3", "4", "5");
  
        // using Collectors averagingLong(ToLongFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingLong(
                                          num -> Long.parseLong(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Output:
4.0

Program 2:




// Java code to show the implementation of
// averagingLong(ToLongFunction mapper) function
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a string stream
        Stream<String> s = Stream.of("7", "8", "9", "10");
  
        // using Collectors averagingLong(ToLongFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingLong(
                                          num -> Long.parseLong(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Output:
8.5

Program 3: When no value is passed as parameter.




// Java code to show the implementation of
// averagingLong(ToLongFunction mapper) function
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a string stream
        Stream<String> s = Stream.of();
  
        // using Collectors averagingLong(ToLongFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingLong(
                                          num -> Long.parseLong(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Output:
0.0



My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!