Java 过滤时是否得到谓词的反向?

Java 过滤时是否得到谓词的反向?,java,collections,guava,Java,Collections,Guava,我知道谓词的基本知识,并理解下面从中复制的代码 谓词isEven=新谓词(){ @覆盖公共布尔应用(整数){ 返回(编号%2)==0; } }; Iterable evenNumbers=Iterables.filter(数字,isEven); 但是,是否可以为与谓词不匹配的项获取iterable(而不更改谓词代码)?使用 Iterable oddNumbers=Iterables.filter(数字、谓词.not(isEven)); 您可以尝试: removeI

我知道谓词的基本知识,并理解下面从中复制的代码

谓词isEven=新谓词(){
@覆盖公共布尔应用(整数){
返回(编号%2)==0;
}               
};
Iterable evenNumbers=Iterables.filter(数字,isEven);
但是,是否可以为与谓词不匹配的项获取iterable(而不更改谓词代码)?

使用

Iterable oddNumbers=Iterables.filter(数字、谓词.not(isEven));
您可以尝试:

removeIf(Iterable, Predicate) -->   Removes all elements satisfying the predicate, using the Iterator.remove() method.  

Iterators.removeIf(Iterator, Predicate)

可以找到更多信息。

您可以创建一个否定谓词,即,
而不是isEven
。这正是我所需要的。@stuart哈哈,是的。谢谢
Iterable<Integer> oddNumbers = Iterables.filter(numbers, Predicates.not(isEven));
removeIf(Iterable, Predicate) -->   Removes all elements satisfying the predicate, using the Iterator.remove() method.  

Iterators.removeIf(Iterator, Predicate)