Fiz a atividade onde pede para alterar uma ArrayList para LinkedList e o método sort para de ordenar.
package br.com.felipe.banco.sistema;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import br.com.felipe.banco.conta.Conta;
import br.com.felipe.banco.conta.ContaPoupanca;
import br.com.felipe.banco.conta.ValorInvalidoException;
public class TestaOrdenacao {
public static void main(String[] args) throws ValorInvalidoException {
// TODO Auto-generated method stub
Conta c1 = new ContaPoupanca(1);
c1.deposita(300);
Conta c2 = new ContaPoupanca(2);
c2.deposita(100);
Conta c3 = new ContaPoupanca(3);
c3.deposita(500);
Conta c4 = new ContaPoupanca(4);
c4.deposita(50);
List<ContaPoupanca> contas = new LinkedList<>();
contas.add((ContaPoupanca) c1);
contas.add((ContaPoupanca) c3);
contas.add((ContaPoupanca) c2);
contas.add((ContaPoupanca) c4);
Collections.sort(contas);
System.out.println(contas);
}
}
package br.com.felipe.banco.conta;
/*
* Classe responsável por moldar as contas do Banco
*
* @author Felipe Macedo
*
*
*/
public abstract class Conta {
protected double saldo;
protected int numero;
private String titular;
Conta(int numero){
this.numero = numero;
}
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public double getSaldo() {
return this.saldo;
}
public void deposita(double valor) throws ValorInvalidoException {
if (valor < 0) {
throw new ValorInvalidoException(valor);
} else{
this.saldo += valor;
}
}
public String toString(){
return "Conta número: "+this.numero+"\n";
}
public void saca(double valor) {
this.saldo -= valor;
}
public abstract void atualiza(double taxa);
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
Conta outraConta = (Conta) obj;
return this.numero == outraConta.numero &&
this.titular.equals(outraConta.titular);
}
public int compareTo(ContaPoupanca outra) {
// TODO Auto-generated method stub
return 0;
}
}
package br.com.felipe.banco.conta;
public class ContaPoupanca extends Conta implements Comparable{
public ContaPoupanca(int numero) {
super(numero);
// TODO Auto-generated constructor stub
}
@Override
public void atualiza(double taxa) {
// TODO Auto-generated method stub
this.saldo += super.saldo;
}
@Override
public int compareTo(ContaPoupanca outra) {
// TODO Auto-generated method stub
if(this.numero < outra.numero){
return -1;
}
if(this.numero > outra.numero){
return 1;
}
return 0;
}
@Override
public int compareTo(Object arg0) {
// TODO Auto-generated method stub
return 0;
}
}