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

Dúvida no Ex. 2 da Aula 5 - Collections framework

Seguinte , fiz meu metodo compareTo onde ficou deste jeito

@Override public int compareTo(ContaPoupanca outra) {

if(this.numero < outra.numero || this.getSaldo() < outra.getSaldo()) return -1;

if(this.numero > outra.numero || this.getSaldo() > outra.getSaldo()) return 1;

return 0; }

ja na resposta do instrutor é deste jeito :

public class ContaPoupanca extends Conta implements Comparable {

@Override public int compareTo(ContaPoupanca outra) { return this.getNumero() - outra.getNumero(); } }

Acredito que a resposta do intrutor esteja errada neste exercicio certo ?

2 respostas
solução!

Não esta errada. O Exercício pede para ordenar pelo número da conta ou pelo número do saldo. Você ordenou pelo saldo mas o instrutor decidiu ordenar pelo número da conta.

O método compareTo serve para comparar e ele retorna os valores negativos, positivos ou zero. Quando retornar um valor negativo significa que o número é menor do que o outro que você esta comparando. Se retornar positivo significa que é maior, se retornar zero significa que é igual.

Então no seu caso você usou os condicionais para retornar os valores -1, 1 ou zero. Não precisa ser somente esses valores, pode ser qualquer valor do tipo inteiro que seja positivo, negativo ou zero. Pois o método compareTo, como eu disse anteriormente, utiliza valores positivos, negativos e nulo para realizar comparação.

Já o instrutor decidiu utilizar uma subtração dos números das contas. Perceba que a subitração segue a ordem "NumeroDaConta - NumeroDaOutraConta". Caso o número da conta for maior que o da outra conta a subtração dará um numero positivo que será retornado. Caso o número da conta for menor que o número da outra conta a subtração dará um número negativo que será retornado. E como ultimo caso, se forem iguais os números, a subtração dará 0 e retornará esse valor. O instrutor apenas utilizou uma outra forma de retornar os valores, que é mais simplificada.

Espero que tenha ajudado. Bons Estudos!

Eu també tinha a mesma dúvida, obrigado pelo esclarecimento