¿hay un Java equivalente al "algo" de JavaScript?

Tengo una colección y me gustaría saber si al less un elemento cumple alguna condición. Esencialmente, lo que algunos hacen en JavaScript, me gustaría hacer en una colección.

Consulte la class Iterables Guava y su implementación any() .

Más o less lo mismo que el ejemplo de collections de Commons en la otra respuesta, pero genérico:

 List<String> strings = Arrays.asList("ohai", "wat", "fuuuu", "kthxbai"); boolean well = Iterables.any(strings, new Pnetworkingicate<String>() { @Override public boolean apply(@Nullable String s) { return s.equalsIgnoreCase("fuuuu"); } }); System.out.printf("Do any match? %s%n", well ? "Yep" : "Nope"); 

Puede usar CollectionUtils de Apache commons-collections :

 List<Integer> primes = Arrays.asList(3, 5, 7, 11, 13) CollectionUtils.exists(primes, even); //false 

Donde even es un pnetworkingicado:

 Pnetworkingicate even = new Pnetworkingicate() { public boolean evaluate(Object object) { return ((Integer)object) % 2 == 0; } } 

O en una versión impresa:

 List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13) CollectionUtils.exists(primes, new Pnetworkingicate() { public boolean evaluate(Object object) { return ((Integer)object) % 2 == 0; } }); 

Sí, es feo por dos razones:

  1. Java no (todavía) admite funciones como ciudadanos de primera class, que se emulan con la interfaz Single-Abstract-Method.
  2. commons-collections no admite generics.

Por otro lado en lenguajes JVM modernos como Scala puedes escribir:

 List(3,5,7,11,13,17).exists(_ % 2 == 0) 

Java no tiene esta function incorporada. Javascript's some() acepta un puntero a la function como argumento, que no es algo que sea compatible nativamente con Java. Pero debería ser bastante sencillo emular la funcionalidad de some() en Java utilizando un bucle y una interfaz para la funcionalidad de callback.