Não está ordenando por numero da conta, quando solicitei a ordenação pelo saldo ele funciona. O que está errado?
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestaOrdenacao {
public static void main(String[] args) {
List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();
ContaPoupanca c1 = new ContaPoupanca(400, "Caio");
c1.deposita(1500);
contas.add(c1);
ContaPoupanca c2 = new ContaPoupanca(467, "Adriano");
c2.deposita(2050);
contas.add(c2);
ContaPoupanca c3 = new ContaPoupanca(230, "Victor");
c3.deposita(1070);
contas.add(c3);
Collections.sort(contas);
for (ContaPoupanca conta : contas) {
System.out.println(conta);
// System.out.println(conta.getSaldo());
}
}
}
// Aqui a classe ContaPoupanca:
public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca> {
private double saldo;
private int numero;
ContaPoupanca(int numero, String nome) {
this.numero = numero;
this.nome = nome;
}
public double getSaldo() {
return this.saldo;
}
public int getNumero() {
return this.numero;
}
public void atualiza(double taxaSelic) {
this.saldo = this.saldo * taxaSelic;
}
@Override
void saca(double valor) {
this.saldo -= valor;
}
@Override
void deposita(double valor) {
this.saldo += valor;
}
@Override
public int compareTo(ContaPoupanca outra) {
// TODO Auto-generated method stub
return this.getNumero() - outra.getNumero();
}
}