📅  最后修改于: 2023-12-03 15:15:54.800000             🧑  作者: Mango
在Java 8中,引入了一些新的收集器(Collector),它们是用于流操作的归约操作的最后一步。本文将讨论收集器averagingInt()
。
averagingInt()
是一个将整数映射为double的收集器,用于计算流中整数的平均值。其定义如下:
public static <T> Collector<T, ?, Double> averagingInt(ToIntFunction<? super T> mapper)
假设我们有一个Student
类,它包含name
和age
两个属性:
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
我们可以使用averagingInt()
收集器来计算学生年龄的平均值:
List<Student> students = Arrays.asList(
new Student("Tom", 18),
new Student("Jane", 20),
new Student("John", 22)
);
double averageAge = students.stream().collect(Collectors.averagingInt(Student::getAge));
System.out.println("Average age: " + averageAge);
执行以上代码将输出:
Average age: 20.0
averagingInt()
收集器是一个非常方便的工具,可以轻松地计算流中整数的平均值。它是Java 8中收集器的一部分,旨在使流操作更为高效和便捷。