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

Ajuda!! Não está ordenando

Boa noite! Ajuda! Fiz o meu, porém não está ordenando. Poderia me ajudar? não estou conseguindo achar o erro.


public class Conta {

    protected double saldo;
    private String nome;
    private int agencia;
    protected int numero;

    public void saca(double valor){
        this.saldo -= this.saldo - valor;
    }

    public void atualiza(double taxa){
        this.saldo += this.saldo*taxa;
    }

    public void setSaldo(double saldo){
        this.saldo = saldo;
    }

    public void setAgencia(int agencia){
        this.agencia = agencia;
    }

    public void setNumero(int num){
        this.numero = num;
    }

    public int getNumero(){
        return this.numero;
    }


}

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{

    public void atualiza(double taxa) {
        this.saldo += this.saldo * taxa * 3;
    }

    public void deposita(double valor) {
        this.saldo += valor - 0.10;
    }

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

        if(this.getNumero() != outra.getNumero()){
            return 1;
        }

        return 0;
    }

    @Override
    public String toString() {
        return "Numero da conta: " + getNumero();
    }

}
import java.util.*;

public class TestaConta{

    public static void main(String[] args){

        ContaPoupanca c1 = new ContaPoupanca();
        ContaPoupanca c2 = new ContaPoupanca();
        ContaPoupanca c3 = new ContaPoupanca();

        c1.setNumero(40);
        c2.setNumero(20);
        c3.setNumero(100);

        List<ContaPoupanca> conta = new ArrayList<>();

        conta.add(c1);
        conta.add(c2);
        conta.add(c3);

        for(ContaPoupanca c : conta){
            System.out.println(c);
        }

        Collections.sort(conta);

        for(ContaPoupanca c : conta){
            System.out.println(c);
        }

    }
}
2 respostas

Era meu método compareTo que estava errado. Agora funcionou!!

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{

    public void atualiza(double taxa) {
        this.saldo += this.saldo * taxa * 3;
    }

    public void deposita(double valor) {
        this.saldo += valor - 0.10;
    }

    @Override
    public int compareTo(ContaPoupanca outra){
        if(this.numero < outra.numero){
            return -1;    
        }

        if(this.numero > outra.numero){
            return 1;
        }

        return 0;
    }

    @Override
    public String toString() {
        return "Numero da conta: " + getNumero();
    }

}
solução!

Parabéns Tiago, obrigado por compartilhar a solução!