predicate use
时间: 2025-01-15 07:25:29 浏览: 15
Predicate 的概念及其应用
Predicate 是 Java 8 中引入的一个函数式接口,位于 java.util.function
包下。此接口表示一个接受单个输入参数并返回布尔值的结果[^2]。
应用场景
Predicate 接口广泛应用于需要条件判断的场合,比如过滤集合中的元素、验证对象属性等。通过使用 Predicate 可以使代码更加简洁和易读。
使用示例
下面是一个简单的例子展示如何利用 Predicate 来筛选列表中长度小于等于3的字符串:
import java.util.*;
import java.util.stream.*;
public class PredicateExample {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "cat", "dog", "banana");
// 定义 predicate 实现
Predicate<String> isShortWord = word -> word.length() <= 3;
// 过滤操作
List<String> shortWords = words.stream()
.filter(isShortWord)
.collect(Collectors.toList());
System.out.println(shortWords); // 输出: [cat, dog]
}
}
在这个例子中,创建了一个名为 isShortWord
的 Predicate 对象用于测试给定单词是否满足特定条件——即长度不超过三个字符。接着,在流管道里调用了 filter 方法传入该谓词来进行实际的数据筛选工作。
另外,还可以组合多个 Predicates 来构建更复杂的逻辑表达式。例如,可以将两个或更多简单条件合并成一个新的复合条件:
// 组合 predicates
Predicate<Integer> lessThanTen = num -> num < 10;
Predicate<Integer> greaterThanFive = num -> num > 5;
List<Integer> numbers = Arrays.asList(3, 7, 9, 12);
numbers.stream().filter(lessThanTen.and(greaterThanFive)).forEach(System.out::println);
// 输出大于五且小于十的数:7 和 9
这里展示了 how to combine two simple conditions into a more complex one using the and method of Predicate interface.
相关推荐














