1 Ordenação por Pontos em Vez de Nome
- Para ordenar usuários pela quantidade de pontos, basta alterar o lambda passado:
usuarios.sort(Comparator.comparing(u -> u.getPontos()));
- Esse código pode ser quebrado para melhor compreensão:
Function
Comparator
usuarios.sort(comparator);
2 Problema de Autoboxing
O método getPontos() retorna um int, mas Function trabalha com Integer.
Isso causa autoboxing, convertendo int para Integer repetidamente, o que pode impactar a performance.
Esse problema ocorre frequentemente nas novas APIs do Java 8.
3 Solução: Usar ToIntFunction e comparingInt
- Para evitar autoboxing, usa-se ToIntFunction, que trabalha diretamente com int:
ToIntFunction
Comparator
usuarios.sort(comparator);
- A versão mais enxuta do código:
usuarios.sort(Comparator.comparingInt(u -> u.getPontos()));
- Essa abordagem melhora a eficiência da ordenação ao eliminar conversões desnecessárias.
Arquivo: OrdenacaoPontos.java