Java函数式接口与Function函数式接口(函数.接口.Java.Function...)
java中的function函数式接口提供了一种表示函数的方式,它只有一个抽象方法,接收一个参数并返回一个结果。它可以用于按特定条件过滤数据,如示例中按年龄过滤用户列表,通过创建一个function来检查用户是否超过指定年龄,然后使用stream api过滤符合条件的用户。
Java 函数式接口与 Function 函数式接口
函数式接口是一种只有一个抽象方法的接口,它允许我们以一种结构化且可读的方式表示函数。在 Java 中,Function 函数式接口是最常用的函数式接口之一。
Function 接口
Function 接口具有以下定义:
public interface Function<T, R> { R apply(T t); }
它接收一个类型为 T 的参数并返回一个类型为 R 的结果。
实战案例:按年龄过滤用户
为了说明 Function 接口的用法,让我们考虑一个按年龄过滤用户列表的示例。
import java.util.ArrayList; import java.util.List; import java.util.function.Function; public class FunctionExample { public static void main(String[] args) { // 创建用户列表 List<User> users = new ArrayList<>(); users.add(new User("John", 30)); users.add(new User("Mary", 25)); users.add(new User("Bob", 40)); // 使用 Function 接口按年龄过滤 Function<User, Boolean> isOver30 = user -> user.getAge() > 30; // 使用 Stream API 过滤用户 List<User> filteredUsers = users.stream() .filter(isOver30) .toList(); // 打印结果 for (User user : filteredUsers) { System.out.println(user.getName()); } } static class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } }
在这个示例中,我们创建了一个 isOver30 Function,它接收一个 User 类型的对象并返回一个布尔值,表示该用户是否年龄超过 30 岁。我们然后使用 Stream API 和 filter 方法使用这个 Function 来过滤用户列表。它将打印出所有年龄超过 30 岁用户的姓名。
以上就是Java函数式接口与Function函数式接口的详细内容,更多请关注知识资源分享宝库其它相关文章!