1 Ordenando por Diferentes Critérios
- Podemos ordenar usuários pelos pontos, evitando autoboxing com comparingInt:
usuarios.sort(Comparator.comparingInt(Usuario::getPontos));
2 Compondo Comparadores com thenComparing
- Para ordenar por pontos e, em caso de empate, por nome:
Comparator<Usuario> c = Comparator.comparingInt(Usuario::getPontos)
.thenComparing(Usuario::getNome);
usuarios.sort(c);
- Há métodos equivalentes como thenComparingInt para evitar boxing.
3 Lidando com Valores null
- Para mover valores null para o final da lista:
usuarios.sort(Comparator.nullsLast(Comparator.comparing(Usuario::getNome)));
- O método nullsFirst faz o contrário, colocando null no início.
4 Ordenando em Ordem Decrescente
- Usamos reversed() no Comparator:
usuarios.sort(Comparator.comparing(Usuario::getPontos).reversed());
5 Explorando Novos Métodos
- A API de Comparator traz muitas melhorias, e é importante pesquisar e experimentar para evitar escrever código desnecessário.
Top comments (0)