Predicate操作Collection集合
在Java中,Predicate是一个函数式接口,它可以用来操作和过滤Collection集合中的元素。Predicate接口的定义如下:
@FunctionalInterface
public interface Predicate<T> {
boolean test(T t);
}
Predicate接口中只有一个抽象方法test(),它接受一个参数并返回一个boolean类型的值。可以使用Predicate接口来实现一些通用的操作,比如过滤某个条件下的元素或者判断集合中的元素是否满足某个条件。
下面是一些常见的Predicate操作示例:
- 过滤集合中大于10的元素:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
Predicate<Integer> predicate = n -> n > 10;
List<Integer> filtered = numbers.stream()
.filter(predicate)
.collect(Collectors.toList());
System.out.println(filtered); // [11, 12, 13, 14, 15]
- 判断集合中是否存在某个元素:
List<String> words = Arrays.asList("apple", "banana", "orange", "pear", "kiwi");
Predicate<String> predicate = word -> word.equals("orange");
boolean exists = words.stream()
.anyMatch(predicate);
System.out.println(exists); // true
- 判断集合中的所有元素是否满足某个条件:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Predicate<Integer> predicate = n -> n > 0;
boolean allMatch = numbers.stream()
.allMatch(predicate);
System.out.println(allMatch); // true
这些示例展示了Predicate接口在操作Collection集合时的一些常见用法,可以根据具体的需求,结合Predicate接口的方法来实现更多的操作。