📅  最后修改于: 2023-12-03 15:16:27.378000             🧑  作者: Mango
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;
}
}
在上面的例子中,我们创建了一个名为ageFunction
的ToDoubleFunction<Person>
对象,并将其用于mapToDouble()
方法中,以提取每个人的年龄。最后,我们计算了平均年龄并将其打印出来。
以上就是ToDoubleFunction<T>
接口的介绍及一个示例。它可以非常方便地在函数式编程和流式操作中使用。