Factorías de Comparator y ordenación fluida
Crea reglas de ordenación legibles y componibles con los métodos factoría de Comparator.
Comparación de Código
✕ Anonymous comparator
people.sort(new Comparator<Person>() {
@Override
public int compare(Person a, Person b) {
int byName = a.name().compareTo(b.name());
return byName != 0 ? byName : Integer.compare(a.age(), b.age());
}
});
✓ Java 8+
people.sort(Comparator.comparing(Person::name)
.thenComparingInt(Person::age));
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Componible
Las reglas de ordenación se encadenan de forma natural.
Más fácil de revisar
Las claves de ordenación y su prioridad son explícitas.
Comparaciones más seguras
Los helpers especializados evitan comparadores aritméticos propensos a errores.
Enfoque Antiguo
Comparator anónimo
Enfoque Moderno
Factorías de Comparator
Desde JDK
8
Dificultad
Principiante
Soporte JDK
Factorías de Comparator y ordenación fluida
Disponible
Disponible desde JDK 8 (marzo de 2014)
Cómo funciona
Las factorías de Comparator expresan la ordenación de forma declarativa y componen claves primarias y secundarias sin bifurcaciones escritas a mano.
Documentación Relacionada
Prueba