Oie Thalia, tudo bem com você?
O seu código não está ordenando pelo nome devido a um erro na classe "TitularDaContaComparator", no atributo "String nomeC2" onde ao invés de setar "c2.getTitular().getNome();" está setando "c1.getTitular().getNome();" ficando igual ao primeiro método.
Segue a explicação direta no código:
class TitularDaContaComparator implements Comparator<Conta>{
@Override
public int compare(Conta c1, Conta c2) {
String nomeC1 = c1.getTitular().getNome();
String nomeC2 = c1.getTitular().getNome(); // o erro está aqui, ele deve receber c2.getTiular().getNome() e não c1.getTitular().getNome()
return nomeC1.compareTo(nomeC2);
}
}
Código corrigido:
class TitularDaContaComparator implements Comparator<Conta>{
@Override
public int compare(Conta c1, Conta c2) {
String nomeC1 = c1.getTitular().getNome();
String nomeC2 = c2.getTitular().getNome(); // agora está corrigido
return nomeC1.compareTo(nomeC2);
}
}
Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)
Bons estudos!