过滤时获取谓词的反向?
Get reverse of predicate when Filtering?
我了解谓词的基础知识并理解以下从 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);
但是是否可以为不匹配谓词的项获取一个可迭代对象(不更改谓词代码)?
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)
可以找到更多信息here。
我了解谓词的基础知识并理解以下从 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);
但是是否可以为不匹配谓词的项获取一个可迭代对象(不更改谓词代码)?
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)
可以找到更多信息here。