No curso de Collections na aula 2, o grande Paulo Silveira nos ensina a fazer um Collections sort com dois objetos, ele mostra que devemos implementar a interface comparable e reescrever o metodo compareTo(). No primeiro caso estamos usando o método para comparar os titulos das aulas:
@Override
public int compareTo(Aula outraAula) {
return this.titulo.compareTo(outraAula.getTitulo());
}
E fazemos então o sort:
Collections.sort(aulas);
// isso irá devolver a aulas em ordem alfabética
Ele nos dá também uma opção de fazer o sort com o tempo das aulas, sem precisar mudar o método compareTo() na nossa classe Aula. nos ensina assim:
Collections.sort(aulas, Comparator.comparing(Aula::getTempo));
// isso irá devolver as aulas em ordem de tempo
praticando, eu tentei fazer o sort com o titulo, sem implementar a interface comparable e o método compareTo(), usando só:
no main:
Collections.sort(aulas, Comparator.comparing(Aula::getTitulo));
E o resultado foi o esperado, aconteceu a ordenação em ordem alfabética de aulas, então no fim nem precisei implementar a interface, reescrever o método e essas coisas, oque eu fiz foi uma gambiarra ?é bom fazer isso ? ou Só se deve fazer isso se você já tem um método compareTo() e não quer mudar ele ?