Вы можете использовать CollectionUtils
от Apache commons-collection :
List<Integer> primes = Arrays.asList(3, 5, 7, 11, 13)
CollectionUtils.exists(primes, even); //false
Где even
- предикат:
Predicate even = new Predicate() {
public boolean evaluate(Object object) {
return ((Integer)object) % 2 == 0;
}
}
Или в встроенной версии:
List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13)
CollectionUtils.exists(primes, new Predicate() {
public boolean evaluate(Object object) {
return ((Integer)object) % 2 == 0;
}
});
Да, ужасен по двум причинам:
- Java (пока) не поддерживает функциикак первоклассные граждане, эмулируемые с помощью интерфейса Single-Abstract-Method.
commons-collections
не поддерживает генерики.
С другой стороны, в современной JVMтакие языки, как Scala, вы можете написать:
List(3,5,7,11,13,17).exists(_ % 2 == 0)