1
resposta

uso de Comparator

Quando uso a classe Comparator no meu código,

Comparator<Conta> comp = (Conta c1, Conta c2) -> {
            String nomeC1 = c1.getTitular().getNome();
            String nomeC2 = c2.getTitular().getNome();
            return nomeC1.compareTo(nomeC2);
    };

na hora de rodar me mostra os resultados por ordem de numero da conta e não pelo nome do titular, porem quando uso o método sort() do meu ArrayList,

lista.sort((Conta c1, Conta c2) -> {
            String nomeC1 = c1.getTitular().getNome();
            String nomeC2 = c2.getTitular().getNome();
            return nomeC1.compareTo(nomeC2);
            }
        );

funciona e ordena pelo nome perfeitamente...

o método compareTo() sobrescrito na classe Conta está assim:

@Override
    public int compareTo(Conta outra) {
        return Double.compare(this.saldo, outra.saldo);
    }

Para poder usar a classe Comparator, igual no primeiro exemplo, precisa mudar o método compareTo da classe Conta, para que compare pelo nome do titular?

1 resposta

Sim, você tem que mudar o método compareTo para fazer o que você quer que ele faça.