Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Comparator e comparable

Poderiam me dar uma overview sobre a diferença entre os dois?

1 resposta
solução!

Ambos são interfaces, mas ao implementar o Comparable vc define a Ordem Natural de comparação entre dois objetos da mesma classe, ou seja, quando vc fizer um sort() em uma lista com esses objetos, o sort vai usar o metodo que vc definiu para compará-los. Já o comparator possibilita que voce mude o criterio de comparação de um objeto sem mexer na implementação da classe .. vamos super que vc precise ordenar uma lista com objetos de alguma biblioteca, mas vc nao pode mudar a implementação dessa biblioteca e nao pode mudar a Ordem natural de comparação entre esses objetos, entao vc cria um Comparator e passa ele como parametro na hora de chamar o seu sort(), ou seja, voce pode ter varios criterios de ordenação. por exemplo:

`Collections.sort(footballTeam, playerComparatorByNumber); // pra comparar o footballTeam pelo numero da camisa

Collections.sort(footballTeam, playerComparatorByName); // pra comparar o footballTeam pelo nome dos jogadores

Collections.sort(footballTeam, playerComparatorByAge); // pra comparar o footballTeam pela idade dos jogadores

Collections.sort(footballTeam); // ao chamar o sort passando apenas a lista, ele iria usar o metodo de comparação que vc implementou através da interface Comparable `

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software