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

Códigos diferentes, porém a lógica seria a mesma?

Então esses dois códigos fazem a mesma coisa?

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca> {    

    @Override
    public int compareTo(ContaPoupanca outra) {
        return this.getNumero() - outra.getNumero();
    }
}
public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca> {    

    @Override
    public int compareTo(ContaPoupanca outra) {
        if(this.getNumero() < outra.getNumero()) return 1;
        if(this.getNumero() > outra.getNumero()) return -1;
    return 0;
    }
}
3 respostas

Oi Renan,

Exatamente, os dois tem o mesmo resultado.

Abraço!

Mas a linha

 return this.getNumero() - outra.getNumero();

no caso, não retornaria o valor de uma conta - valor de outra conta?

pq lendo esse código da a entender que será um valor menos o outro e retorna o valor...

solução!

Oi Renan,

É que para o compareTo a regra de ordenação não é necessariamente retornar 1, 0 e -1. A regra é um número positivo qualquer, 0 e um número negativo qualquer.

Se o número retornado por this.getNumero() for maior que o número retornado por outra.getNumero(), o resultado da subtração é número positivo.

Se o número retornado por this.getNumero() for menor que o número retornado por outra.getNumero(), o resultado da subtração é número negativo.

Se os números retornados forem iguais, o resultado da subtração é 0.

Abraço!