Estou com o seguinte código, respectivo ao assunto:
public class TestaOrdenacao {
public static void main(String[] args) {
List<Conta> contas = new ArrayList<Conta>();
Random random = new Random();
ContaPoupanca c1 = new ContaPoupanca(random.nextInt(2000), "Caio");
c1.deposita(random.nextInt(10000) + random.nextDouble());
contas.add(c1);
ContaPoupanca c2 = new ContaPoupanca(random.nextInt(2000), "Adriano");
c2.deposita(random.nextInt(10000) + random.nextDouble());
contas.add(c2);
ContaPoupanca c3 = new ContaPoupanca(random.nextInt(2000), "Victor");
c3.deposita(random.nextInt(10000) + random.nextDouble());
contas.add(c3);
Collections.sort(contas);
for (Conta conta : contas) {
System.out.println(conta);
}
// for (Conta p : contas) {
// System.out.println(contas);
// }
}
public class Conta implements Comparable<Conta> {
protected int numero;
private String nomeDoCliente;
public void setNumero(int numero) {
this.numero = numero;
}
public int getNumero() {
return numero;
}
public int compareTo(Conta outra) {
// return this.getNumero() - outra.getNumero();
return this.nomeDoCliente.compareTo(outra.nomeDoCliente);
}
public String getNomeDoCliente() {
return nomeDoCliente;
}
public void setNomeDoCliente(String nomeDoCliente) {
this.nomeDoCliente = nomeDoCliente;
}
}
public class ContaPoupanca extends Conta {
private int i;
private String string;
private double saldo;
public ContaPoupanca(int i, String string) {
this.i = i;
this.string = string;
}
//public int compareTo(ContaPoupanca outra) {
// return this.getNumero() - outra.getNumero();
// }
public int compareTo(ContaPoupanca outra) {
return this.getNomeDoCliente().compareTo(outra.getNomeDoCliente());
}
public void deposita(double d) {
saldo +=d;
}
public String toString (){
return string;
}
}
Porem esta me retornando, erro nas seguintes linhas: Classe conta: return this.nomeDoCliente.compareTo(outra.nomeDoCliente); Classe testaOrdenação: Collections.sort(contas); O código não funciona.