// Criar a classe Conta
public class Conta implements Comparable<Conta> {
private String titular;
private double saldo;
// Criar o método construtor
public Conta(String titular, double saldo) {
this.titular = titular;
this.saldo = saldo;
}
// Criar os métodos Getters e Setters
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
// Sobrescrever o método para imprimir as informaçãoes da conta
@Override
public String toString() {
return titular + " - " + saldo;
}
// Sobrescrer o método para fazer a ordenação pelo saldo da conta na ordem decrescente
@Override
public int compareTo(Conta outra) {
if (this.saldo < outra.saldo) {
return 1;
} else if (this.saldo > outra.saldo) {
return -1;
} else {
return 0;
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
// Instanciar a classe Conta
Conta conta = new Conta("primeiraConta", 100.00);
Conta conta1 = new Conta("SegundaConta", 150.00);
// Criar a lista de contas
ArrayList<Conta> contas = new ArrayList<>();
contas.add(conta);
contas.add(conta1);
// Imprimir contas
System.out.println("-------- Imprimir contas na ordem natural --------");
System.out.println(contas);
System.out.println();
// Utilizando a interface Comparable na classe Conta e fazendo a implementação do método compareTo()
Collections.sort(contas);
// Imprimir contas
System.out.println("-------- Imprimir contas em ordem decrescente de saldo --------");
System.out.println(contas);
}
}