我了解谓词的基础知识,并了解从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);
但是,是否可以为与谓词不匹配的项获取可迭代(不更改谓词代码)?
答案 0 :(得分:8)
Iterable<Integer> oddNumbers = Iterables.filter(numbers, Predicates.not(isEven));
答案 1 :(得分:0)
您可以尝试:
removeIf(Iterable, Predicate) --> Removes all elements satisfying the predicate, using the Iterator.remove() method.
Iterators.removeIf(Iterator, Predicate)
可以找到更多信息here。