📜  Java中的 ToDoubleFunction 接口及示例(1)

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

Java中的 ToDoubleFunction接口及示例

简介

ToDoubleFunction<T>是Java 8中的函数式接口,它的作用是接收一个类型为T的参数,并返回一个double类型的结果。它可以被用于各种场景,如转换(conversion)、提取(extraction)或比较(comparison)等。

方法

ToDoubleFunction<T>接口只定义了一个方法:

double applyAsDouble(T value);
示例

下面是一个使用ToDoubleFunction<T>接口的示例。假设我们有一个Person类,我们想要从每个人中提取出他们的年龄(age)并计算平均年龄。我们可以通过以下方式实现:

import java.util.Arrays;
import java.util.List;
import java.util.function.ToDoubleFunction;

public class Main {
    public static void main(String[] args) {
        List<Person> people = Arrays.asList(
                new Person("John", 27),
                new Person("Alice", 23),
                new Person("Mike", 40),
                new Person("Jack", 35),
                new Person("Sarah", 21)
        );

        ToDoubleFunction<Person> ageFunction = person -> person.getAge();

        double averageAge = people.stream()
                .mapToDouble(ageFunction)
                .average()
                .orElse(0);

        System.out.println("Average age: " + averageAge);
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

在上面的例子中,我们创建了一个名为ageFunctionToDoubleFunction<Person> 对象,并将其用于mapToDouble()方法中,以提取每个人的年龄。最后,我们计算了平均年龄并将其打印出来。

以上就是ToDoubleFunction<T>接口的介绍及一个示例。它可以非常方便地在函数式编程和流式操作中使用。