java predicate 使用方法
时间: 2023-03-05 16:33:34 浏览: 162
Java中的Predicate是一个函数式接口,它接受一个参数并返回一个布尔值。Predicate通常用于在集合操作中过滤元素。
使用Predicate的常见方法是将它作为参数传递给Stream的filter()方法。例如,以下代码使用Predicate过滤出集合中所有偶数:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
.filter(num -> num % 2 == 0)
.collect(Collectors.toList());
```
在上面的代码中,num -> num % 2 == 0是一个Lambda表达式,它实现了Predicate接口中的test()方法。test()方法接受一个整数参数并返回一个布尔值,用于判断整数是否为偶数。filter()方法根据test()方法的返回值来决定是否保留元素。
除了使用Lambda表达式,还可以使用方法引用来创建Predicate。例如,以下代码使用方法引用过滤出集合中所有字符串长度大于等于5的元素:
```
List<String> strings = Arrays.asList("foo", "bar", "baz", "hello", "world");
List<String> longStrings = strings.stream()
.filter(Predicate.isEqual("foo").negate())
.filter(str -> str.length() >= 5)
.collect(Collectors.toList());
```
在上面的代码中,Predicate.isEqual("foo").negate()是一个方法引用,它返回一个Predicate,用于判断字符串是否不等于"foo"。第一个filter()方法用于过滤掉等于"foo"的字符串,第二个filter()方法用于过滤出长度大于等于5的字符串。
阅读全文