VinPro:
Me gusta usar Java 8 Comparator
para ordenar una List
de un objeto sobre la base de tres propiedades. El requisito es una especie en este orden - Nombre ascendente, descendente Edad, Ciudad ascendente. Si utilizo reversed()
el `Edad invierte previamente ordenadas entradas también. Esto es lo que he intentado:
Comparator.comparing((Person p) -> p.getName())
.thenComparingInt(p -> p.getAge())
.reversed()
.thenComparing(p -> p.getCity());
shmosel:
utilizar Comparator.reverseOrder()
:
.thenComparing(Person::getAge, Comparator.reverseOrder())
Si se quiere evitar autoboxing, puede hacerlo
.thenComparing((p1, p2) -> Integer.compare(p2.getAge(), p1.getAge()))
O
.thenComparing(Comparator.comparingInt(Person::getAge).reversed())