Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como o método compare do meu comparator é chamado dentro do sort?

Olá. Eu estive analisando sobre a ordenação de listas usando o método de instância sort(). Entendi que preciso criar meu comparator próprimo, que implementa a interface Comparator e desenvolve reescreve o método compare(T o1, To2). Porém, percebi que passamos para o sort uma instância do nosso comparator, mas nas aulas não criamos nenhum construtor que chame o método compare assim que um objeto comparator é criado. Nesse caso, o método sort chama esse método compare do meu comparator por baixo dos panos?

2 respostas

Fala Lucas!

Sim! O método sort vai precisar saber quem é menor que o outro para colocar na ordem. Quando você não implementa o "compare", ele chama o padrão, mas quando você implementa, o que você implementou vai determinar quem é menor que quem, retornando o valor negativo de acordo com o critério que você definir neste método "compare" que você reescreveu...

Espero ter ajudado!

Não esqueça de marcar a pergunta no fórum como resolvida para eu receber seu feedback beleza!?

Abraços e bom aprendizado!

solução!

Boa tarde, Lucas Moreno Dantas Santos.

Sempre é bom consultarmos o javadoc ou navegar nas implementações dos métodos, para vermos como está sendo feito as "mágicas", rsrsrs. Se você acessar o sort da classe List, você verá que ele chama o sort da classe Arrays, que por fim chama o sort da classe TimSort e no método binarySort desta classe, ele invoca o compare que foi implementado na por você em sua classe.

Espero ter ajudado.

Abraços.