📜  Java 8 |带有示例的收集器 averagingInt()(1)

📅  最后修改于: 2023-12-03 15:15:54.800000             🧑  作者: Mango

Java 8 |带有示例的收集器 averagingInt()

在Java 8中,引入了一些新的收集器(Collector),它们是用于流操作的归约操作的最后一步。本文将讨论收集器averagingInt()

averagingInt()的定义

averagingInt()是一个将整数映射为double的收集器,用于计算流中整数的平均值。其定义如下:

public static <T> Collector<T, ?, Double> averagingInt(ToIntFunction<? super T> mapper)
使用示例

假设我们有一个Student类,它包含nameage两个属性:

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中收集器的一部分,旨在使流操作更为高效和便捷。