Oi Fabricio! Tudo bem?
A questão que você levantou sobre o método compareTo
e a diferença de ordenação entre letras maiúsculas e minúsculas é bem interessante. O que acontece é que, por padrão, o método compareTo
em Java diferencia letras maiúsculas de minúsculas. Isso significa que, na ordem lexicográfica padrão, todas as letras maiúsculas vêm antes das letras minúsculas. Por isso, "Lost" aparece antes de "O poderoso chefão", mas "lost" não.
Se você deseja que a ordenação não faça distinção entre maiúsculas e minúsculas, uma solução é usar o método compareToIgnoreCase
em vez de compareTo
. Esse método ignora as diferenças de maiúsculas e minúsculas ao comparar strings. Aqui está um exemplo de como você poderia usá-lo:
@Override
public int compareTo(Titulo outroTitulo) {
return this.getNome().compareToIgnoreCase(outroTitulo.getNome());
}
Com essa alteração, tanto "Lost" quanto "lost" seriam tratados da mesma forma na ordenação.
Bons estudos!