With Java 8 lambda expression you can do something like
cats.stream()
.filter( c -> c.getAge() == 3 && c.getFavoriteFood() == WHISKAS )
.collect(Collectors.toList());
Conceptually the same as the Guava Predicate approach, but it looks much cleaner with lambda
Probably not a valid answer for OP but worth to note for people with similar need. :)