当前位置: 首页>>代码示例>>用法及示例精选>>正文


Java Collectors averagingLong(ToLongFunction mapper)用法及代码示例

Collector的averagingLong(ToLongFunction <?super T> mapper)方法用于查找在参数中传递的long值的平均值。此方法返回一个Collector,该Collector产生应用于输入元素的long值函数的算术平均值。如果没有传递任何元素作为输入元素,则此方法返回0。

该方法用于计算算术平均值的公式为:

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

用法:

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

其中的术语如下:

  • 接口Collector<T,A,R>:一种可变的归约运算,它将输入元素累积到一个可变结果容器中,在处理完所有输入元素之后,可以有选择地将累积的结果转换为最终表示形式。还原操作可以顺序或并行执行。
    • T:归约运算的输入元素的类型。
    • A:归约运算的可变累积类型。
    • R:归约运算的结果类型。
  • Double: Double类将原始类型double的值包装在对象中。类型为Double的对象包含一个类型为double的单个字段。
  • ToLongFunction:表示产生long值结果的函数。

参数:此方法接受参数 mapper,该参数 mapper是使用ToLongFunctions转换为Long的long值流。 ToLongFunction是一种在流对象上工作时提取长型值的函数。

下面是说明averagingLong()方法的示例:

程序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); 
    } 
}
输出:
4.0

程序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); 
    } 
}
输出:
8.5

程序3:当没有值作为参数传递时。

// 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); 
    } 
}
输出:
0.0


相关用法

注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 Java | Collectors averagingLong (ToLongFunction mapper) with Examples。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。