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)