Por que preciso passar para o método lista.sort o objeto Comparator?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Por que preciso passar para o método lista.sort o objeto Comparator?
Por padrão, os métodos de ordenação precisam de algum tipo de comparador para saber qual lógica será utilizada para ordenação dos objetos.
Deste modo, o método sort da interface List , também necessita de um objeto comparador como parâmetro.
Portanto, no Java existe essa Interface Comparator responsável por definir os critérios comparativos para a ordenação.
No caso do exemplo, estamos criando a classe TitularDaContaComparator e delegando a parte da comparação para um outro método já existente capaz de comparar Strings, que é o metodo compareTo(), utilizado em: nomeC1.compareTo(nomeC2); .
Então, essa classe que foi criada implementando a interface Comparator e sobrescrevendo o método compare() vai definir o critério de comparação para ordenação da nossa lista.