Collector的averagingLong(ToLongFunction <?super T> mapper)方法用于查找在参数中传递的long值的平均值。此方法返回一个Collector,该Collector产生应用于输入元素的long值函数的算术平均值。如果没有传递任何元素作为输入元素,则此方法返回0。
该方法用于计算算术平均值的公式为:
用法:
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
相关用法
- Java ToLongFunction Interface用法及代码示例
- Java 8 Collectors counting()用法及代码示例
- Java 8 Collectors averagingInt()用法及代码示例
- Java Collectors toSet()用法及代码示例
- Java Collectors averagingDouble()用法及代码示例
- Java Collectors toList()用法及代码示例
- Java Collectors collectingAndThen()用法及代码示例
- Java Collectors toMap()用法及代码示例
- Java Collectors groupingBy()用法及代码示例
- Java Collectors maxBy(Comparator comparator)用法及代码示例
- Java Collectors minBy(Comparator comparator)用法及代码示例
- Java LongStream map(LongUnaryOperator mapper)用法及代码示例
- Java DoubleStream map(DoubleUnaryOperator mapper)用法及代码示例
- Java IntStream map(IntUnaryOperator mapper)用法及代码示例
注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 Java | Collectors averagingLong (ToLongFunction mapper) with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。