public class Cuenta implements Comparable<Cuenta>{
private String titular;
private String tipoCuenta;
private double saldo;
//Constructor
public Cuenta(String titular, String tipoCuenta, double saldo){
this.titular = titular;
this.tipoCuenta = tipoCuenta;
this.saldo = saldo;
}
//Getters and Setters
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public String getTipoCuenta() {
return tipoCuenta;
}
public void setTipoCuenta(String tipoCuenta) {
this.tipoCuenta = tipoCuenta;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
//Implementación del método compareTo, comparando dos objetos de la clase Cuenta en el atributo saldo
@Override
public int compareTo(Cuenta otra) {
if (this.saldo < otra.saldo) {
return 1;
} else if (this.saldo > otra.saldo) {
return -1;
} else {
return 0;
}
}
//Método toString para mostrar datos en consola
@Override
public String toString() {
return "Titular: " + this.getTitular() + ", Tipo de Cuenta: (" + this.getTipoCuenta() + ") Saldo: " + getSaldo();
}
}
import java.util.ArrayList;
import java.util.Collections;
public class Principal {
public static void main(String[] args) {
//Crear cuentas
Cuenta cuenta1 = new Cuenta("Alice", "Cuenta Corriente", 2300);
Cuenta cuenta2 = new Cuenta("Juan", "Cuenta Debito",1232);
Cuenta cuenta3 = new Cuenta("Martín", "Cuenta Corriente",3450);
Cuenta cuenta4 = new Cuenta("Gildardo", "Cuenta Debito",7450);
Cuenta cuenta5 = new Cuenta("Luz", "Cuenta Debito",3425);
//Crear lista de Cuentas
ArrayList<Cuenta> listaCuentas = new ArrayList<>();
listaCuentas.add(cuenta1);
listaCuentas.add(cuenta2);
listaCuentas.add(cuenta3);
listaCuentas.add(cuenta4);
listaCuentas.add(cuenta5);
//Mostrar cuentas antes de ordenar
System.out.println("Lista sin ordenar");
System.out.println(listaCuentas);
System.out.println("");
//Ordenar lista de mayor a menor (Saldo)
System.out.println("Lista ordenada de forma descendente:");
Collections.sort(listaCuentas);
for (Cuenta cuenta : listaCuentas) {
System.out.println(cuenta);
}
}
}