Я знаю основу предикатов и понять ниже кода копируется из 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);
Но можно получить итератор для элементов, которые не соответствуют предикату (без изменения коды предиката)?
Вы можете создать предикат отрицания, а именно: 'not isEven'. –