Google Collections
Una de las cosas más irritantes de Java es su API de colecciones. Es verdaderamente frustante tener que usar tal cantidad de verbosidad y ceremonia para simplemente inicializar una lista, y no digamos ya para realizar operaciones más complejas como filtrar los elementos.
Si el cambiar a un lenguaje dinámico no es solución, quizá ayude la librería del buscador gigante Google Collections.
Un par de ejemplos rápidos, primero incializando una lista:
List<Integer> list1 = Lists.newArrayList(1, 2, 3); // nótese que List es de tipo java.util.List
System.out.println(Joiner.on(", ").join(list1)); // imprime "1, 2, 3"
y otro utilizando un filtro:
List<Integer> list = Lists.newArrayList(1, 2, 3, null);
Iterable<Integer> filter = Iterables.filter(list, new Predicate<Integer>() {
public boolean apply (Integer input) {
return input == null || (input > 2);
}
});
System.out.println(Joiner.on(", ").useForNull("100").join(filter)); // imprime 3, 100
Google Collections está disponible en la versión 1.0-rc2 a través de Maven:
<dependency>
<groupId>com.google.collections</groupId>
<artifactId>google-collections</artifactId>
<version>1.0-rc2</version>
</dependency>
o en descarga directa desde su web.
Como vemos no pretende reemplazar a las colecciones nativas de Java, sino que las complementa, las extiende e incluso proporciona alguna nueva.
Enlace | Google Collections
Vídeo presentación | Parte 1 (~40min) y Parte 2 (~53min)


