Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Classificando a String em ordem decrescente

No exemplo da aula foi utilizado o Compare para classificar pelo nome do titular da conta em ordem crescente. Como seria em ordem decrescente?

2 respostas
solução!

Oi José, tudo bom?

Você pode inverter o sinal do resultado do seu compare(), que o critério de comparação será invertido. Algo como:

 @Override
        public int compare(Conta c1, Conta c2) {

                String nomeC1 = c1.getTitular().getNome();
                String nomeC2 = c2.getTitular().getNome();
                return nomeC1.compareTo(nomeC2) * -1;
        }

Ou, você pode inverter o resultado da lista ao fim da ordenação:

NumeroDaContaComparator comparator = new NumeroDaContaComparator();
TitularDaContaComparator titularComparator = new TitularDaContaComparator();
lista.sort(titularComparator);
Collections.reverse(lista);

Ou, você pode apenas inverter a ordem dos objetos sendo comparados:

class TitularDaContaComparator implements Comparator<Conta> {

        @Override
        public int compare(Conta c1, Conta c2) {

                String nomeC1 = c1.getTitular().getNome();
                String nomeC2 = c2.getTitular().getNome();
        // troca c1 por c2 e c2 por c1
                return nomeC2.compareTo(nomeC1);
        }
}

Existem outras formas além dessas =)

Abraço

Muito obrigado.