Predicate<T>
时间: 2024-06-12 22:09:41 浏览: 121
Predicate
Predicate<T> 是 Java 中的一个函数式接口,它接受一个参数并返回一个 boolean 类型的结果。通常用于集合的筛选或过滤操作,比如筛选出大于某个值的元素,或者根据某些条件过滤出符合要求的元素等。
例如,下面的代码使用 Predicate<T> 接口实现了一个根据年龄过滤学生的方法:
```
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;
}
public static List<Student> filterStudents(List<Student> students, Predicate<Student> predicate) {
List<Student> result = new ArrayList<>();
for (Student student : students) {
if (predicate.test(student)) {
result.add(student);
}
}
return result;
}
}
List<Student> students = Arrays.asList(
new Student("Tom", 18),
new Student("Jerry", 20),
new Student("Mike", 22)
);
// 过滤出年龄大于等于20的学生
List<Student> filteredStudents = Student.filterStudents(students, student -> student.getAge() >= 20);
```
在这个例子中,我们通过实现 Predicate<Student> 接口来定义了一个筛选条件,然后将这个条件传递给 filterStudents 方法,方法内部会遍历所有的学生,并根据传入的条件进行筛选,最终返回符合条件的学生列表。
阅读全文