Capítulo 4. Comparadores y colectores
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Java 8 mejora la interfaz Comparator con varios métodos estáticos y predeterminados que simplifican mucho las operaciones de ordenación. Ahora es posible ordenar una colección de POJOs por una propiedad, luego igualar las primeras propiedades por una segunda, luego por una tercera, y así sucesivamente, sólo con una serie de llamadas a la biblioteca.
Java 8 también añade una nueva clase de utilidad llamada java.util.stream.Collectors, que proporciona métodos estáticos para convertir de nuevo flujos en varios tipos de colecciones. Los colectores también pueden aplicarse "aguas abajo", lo que significa que pueden postprocesar una operación de agrupación o partición.
Las recetas de este capítulo ilustran todos estos conceptos.
4.1 Ordenar con un comparador
Problema
Quieres ordenar objetos.
Solución
Utiliza el método sorted de Stream con un Comparator, implementado con una expresión lambda o generado por uno de los métodos estáticos compare de la interfaz Comparator.
Debate
El método sorted de Stream produce un nuevo flujo ordenado utilizando el orden natural de la clase. El orden natural se especifica implementando la interfaz java.util.Comparable.
Por ejemplo, considera la posibilidad de ordenar una colección de cadenas , como se muestra en el Ejemplo 4-1.
Ejemplo 4-1. Ordenar cadenas lexicográficamente
privateList<String ...