VinPro:
Eu gosto de usar Java 8 Comparator
para classificar uma List
de um objeto com base em três propriedades. A exigência é a espécie nesta ordem - Nome ascendente, descendente Idade, Cidade ascendente. Se eu usar reversed()
em `Idade inverte anteriormente entradas classificadas também. Aqui está o que eu tentei:
Comparator.comparing((Person p) -> p.getName())
.thenComparingInt(p -> p.getAge())
.reversed()
.thenComparing(p -> p.getCity());
shmosel:
use Comparator.reverseOrder()
:
.thenComparing(Person::getAge, Comparator.reverseOrder())
Se você quer evitar autoboxing, você pode fazer
.thenComparing((p1, p2) -> Integer.compare(p2.getAge(), p1.getAge()))
Ou
.thenComparing(Comparator.comparingInt(Person::getAge).reversed())