DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

1

5.5 Ordenando por pontos e o autoboxing

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<Usuario, Integer> extraiPontos = u -> u.getPontos();
Comparator<Usuario> comparator = Comparator.comparing(extraiPontos);
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<Usuario> extraiPontos = u -> u.getPontos();
Comparator<Usuario> comparator = Comparator.comparingInt(extraiPontos);
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

Quadratic AI

Quadratic AI – The Spreadsheet with AI, Code, and Connections

  • AI-Powered Insights: Ask questions in plain English and get instant visualizations
  • Multi-Language Support: Seamlessly switch between Python, SQL, and JavaScript in one workspace
  • Zero Setup Required: Connect to databases or drag-and-drop files straight from your browser
  • Live Collaboration: Work together in real-time, no matter where your team is located
  • Beyond Formulas: Tackle complex analysis that traditional spreadsheets can't handle

Get started for free.

Watch The Demo 📊✨

Top comments (0)

Jetbrains Survey

Calling all developers!

Participate in the Developer Ecosystem Survey 2025 and get the chance to win a MacBook Pro, an iPhone 16, or other exciting prizes. Contribute to our research on the development landscape.

Take the survey

AWS Security LIVE!

Hosted by security experts, AWS Security LIVE! showcases AWS Partners tackling real-world security challenges. Join live and get your security questions answered.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️