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

[Dúvida] Método compareTo é só para Strings?

Olá!

Foi utilizado primeiro o método compareTo para ordenar os nomes dos filmes, e, posteriormente, o Comparator.comparing para ordenar os anos de lançamento.

Não ficou claro para mim se os métodos também poderiam ter sido utilizados de forma invertida. Então minha dúvida é se o método compareTo só pode ser usado para ordenar elementos do tipo String (nome dos filmes) ou se pode ser usado para outros tipos também, como do tipo inteiro (ano de lançamento), por exemplo.

Obrigado!

4 respostas

Olá, Willder!

Ótima pergunta! O método compareTo é um método da classe String que compara duas strings lexicograficamente. No entanto, é possível implementar a interface Comparable em outras classes para que essas classes possam ser comparadas e ordenadas.

No caso dos anos de lançamento dos filmes, como eles são do tipo int, não é possível utilizar o método compareTo diretamente. É necessário implementar a interface Comparable na classe que contém o ano de lançamento e definir como será feita a comparação entre dois anos.

Outra opção é utilizar o Comparator.comparing, que permite ordenar uma lista com base em uma determinada propriedade de seus elementos, independentemente do tipo dessa propriedade.

Espero ter ajudado a esclarecer sua dúvida. Se tiver mais alguma pergunta, é só perguntar!

Bons estudos!

Valeu, Matheus!

Quando eles vão ordenar a lista de filmes pelo ano de lançamento, a Jacqueline comenta que eles já usaram o compareTo pra ordenar por ordem alfabética, então não poderão usá-lo novamente. Então quer dizer que não é possível usar o compareTo duas vezes na mesma classe, certo?

solução!

Infelizmente não, mas a gente pode criar com Comparator para fazer esse tipo de ordenação, dá uma lida nesse artigo aqui

Boa! Muito obrigado!