Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

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

Se eu quiser ordenar pelo nome da conta e não pelo numero ou salario, como faço?

package br.com.alura.banco.conta;

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca> {

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

    }

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

    @Override 
    public int compareTo(ContaPoupanca outraConta) {
        //Ordenando pelo saldo
        if(this.getSaldo() > outraConta.getSaldo()) return 1;
        if(this.getSaldo() < outraConta.getSaldo()) return -1;
        else return 0;

        //Ordenando pelo numero
        //return this.getNumero() - outraConta.getNumero();                    
    }
}
package br.com.alura.banco;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import br.com.alura.banco.conta.ContaPoupanca;

public class TestaOrdenacao {
    public static void main(String[] args) {
        List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();

        ContaPoupanca c1 = new ContaPoupanca();
        c1.deposita(1500.0);
        c1.setNome("Marte");
        contas.add(c1);

        ContaPoupanca c2 = new ContaPoupanca();
        c2.deposita(2050.99);
        c2.setNome("Lua");
        contas.add(c2);

        ContaPoupanca c3 = new ContaPoupanca();
        c3.deposita(1070.0);
        c3.setNome("Terra");
        contas.add(c3);

        Collections.sort(contas);

        for (ContaPoupanca conta : contas) {
            System.out.println(conta);
        }
    }
}
1 resposta
solução!

Ola Willian !

Tente assim:

 @Override 
    public int compareTo(ContaPoupanca outraConta) {
        return this.getNome().compareTo(outraConta.getNome()));
    }

Abraço !