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

Por que não chamamos o método?

Boa tarde,

Por que não há necessidade de chamarmos o método "compare" das classes que implementam o "Comparator", bastando passar como parâmetro ao "sort()" a instância da classe?

public class Teste {
    public static void main(String[] args) {
        //mais codigo

        OrdenacaoNumerica on = new OrdenacaoNumerica();
        lista.sort(on);
        System.out.println("Ordenacao pelo numero da conta: ");
        for (Conta contaOn : lista) {
            System.out.println(contaOn);
        }
    }
}

class OrdenacaoNumerica implements Comparator<Conta> {

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

        if(c1.getNumero() < c2.getNumero()) {
            return -1; //ele entende que deve ficar na pos. anterior
        }
        if(c1.getNumero() > c2.getNumero()) {
            return 1; //ele entende que deve ficar na pos. posterior
        }
        return 0; //tem que ficar pra caso nao satisfaca nenhuma condicao
    }
2 respostas
solução!

Oi Nicolas, até onde sei, o sort faz isso automaticamente por baixo dos panos. Lembra do polimorfismo no curso 3 de java? É a mesma ideia, só que usando interface.

Ah sim, pensando no conceito faz todo o sentido mesmo Wanderson, muito obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software