Java 8 |带有示例的收集器 averagingInt()
Collectors averagingInt(ToIntFunction super T> mapper)方法用于查找传入参数的整数的平均值。此方法返回一个收集器,该收集器生成应用于输入元素的整数值函数的算术平均值。如果没有元素作为输入元素传递,则此方法返回 0。
该方法用于计算算术平均值的公式为:
句法:
public static
Collector
averagingInt(ToIntFunction super T> mapper)
在哪里,
- Interface Collector< T, A, R > :一种可变归约操作,将输入元素累积到可变结果容器中,在处理完所有输入元素后,可选择将累积结果转换为最终表示。归约操作可以顺序或并行执行。
- T:归约操作的输入元素的类型。
- A:归约操作的可变累积类型。
- R:归约操作的结果类型。
- Double: Double 类将原始类型 double 的值包装在一个对象中。 Double 类型的对象包含一个类型为 double 的单个字段。
- ToIntFunction:表示产生 int 值结果的函数。
参数:此方法采用ToIntFunction类型的强制参数映射器。它是一个从流中提取 int 类型值的函数。
下面是说明 averagingInt() 方法的示例:
方案一:
// Java code to show the implementation of
// Collectors averagingInt(ToIntFunction 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 with numbers
Stream s = Stream.of("3", "4", "5");
// using Collectors averagingInt(ToIntFunction mapper)
// method to find arithmetic mean of inputs given
double ans = s
.collect(Collectors
.averagingInt(
num -> Integer.parseInt(num)));
// displaying the result
System.out.println(ans);
}
}
输出:
4.0
程序 2:当没有输入元素作为参数传递给 averagingInt() 方法时。
// Java code to show the implementation of
// Collectors averagingInt(ToIntFunction mapper) function
import java.util.stream.Collectors;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a empty string stream
Stream s = Stream.of();
// using Collectors averagingInt(ToIntFunction mapper)
// method to find arithmetic mean of inputs given
double ans = s
.collect(Collectors
.averagingInt(
num -> Integer.parseInt(num)));
// displaying the result
System.out.println(ans);
}
}
输出:
0.0
方案 3:
// Java code to show the implementation of
// Collectors averagingInt(ToIntFunction 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 s = Stream.of("7", "8", "9", "10");
// using Collectors averagingInt(ToIntFunction mapper)
// method to find arithmetic mean of inputs given
double ans = s
.collect(Collectors
.averagingInt(
num -> Integer.parseInt(num)));
// displaying the result
System.out.println(ans);
}
}
输出:
8.5