java - 过滤时获取谓词的反转?

标签 java collections guava

我了解谓词的基础知识并理解从 this question 复制的以下代码

Predicate<Integer> isEven = new Predicate<Integer>() {
    @Override public boolean apply(Integer number) {
        return (number % 2) == 0;
    }               
};
Iterable<Integer> evenNumbers = Iterables.filter(numbers, isEven);

但是是否可以为与谓词不匹配的项获取可迭代对象(无需更改谓词代码)?

最佳答案

使用Predicates#not(Predicate) .

Iterable<Integer> oddNumbers = Iterables.filter(numbers, Predicates.not(isEven));

关于java - 过滤时获取谓词的反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28094040/

相关文章:

java - 配置 SQuirreL 和 MariaDB 连接以减少超时

java - 如何使用JPA JAVA进行JOIN

java - 收集可选项目

java - Guava 破坏了 maven-plugin

java - Guava - Google 缓存 - loadSuccessCount 始终为 0

java - 如何使图标在 Java 9 中具有更高的 UIScale 时能够很好地缩放?

java - ObjectMapper-无法反序列化实例 java.lang.Double

c# - 构建一个 self 维护的集合,在项目过期时将其删除?

php - Laravel/无法访问 protected 属性 Illuminate\Database\Eloquent\Collection::$items

sorting - 我们可以使用两个标准来排序吗