1
resposta

[Projeto] Java: Trabalhando com listas

//CLASSE PRINCIPAL (MAIN)
import java.util.*;

public class Main {
    public static void main(String[] args) {

        boolean controle = true;
        String descricao = "";
        Double valorDaCompra;
        Scanner readValue = new Scanner(System.in);


        //  Map<String, Double> compras = new HashMap<>();


        System.out.println("Digite o limite do cartão: ");
        double limite = readValue.nextDouble();

        CartaoDeCredito cartao = new CartaoDeCredito(limite);


        while (controle) {
            readValue.nextLine(); //it consumes the caracter "\ n" so that there are no jumps.
            
            System.out.println("Digite a descrição da compra: ");
            descricao = readValue.nextLine();

            System.out.println("Digite o valor da compra: ");
            valorDaCompra = readValue.nextDouble();

            Compra compra = new Compra(descricao, valorDaCompra);

            if (cartao.lancaCompra(compra)) {
                System.out.println("COMPRA REALIZADA!");
            } else {
                System.out.println("COMPRA NÃO REALIZADA! ");
                System.out.println("SALDO INSUFICIENTE \n" + "SALDO ATUAL: " + cartao.getSaldo());
            }
                System.out.println("Digite 0(zero) para sair 1(um) para continuar");
                if (readValue.nextInt() == 0) controle = false;

        }
        System.out.println("******************************************************** ");
        System.out.println("COMPRAS REALIZADAS:");
        Collections.sort(cartao.getCompras());
        for(Compra compra : cartao.getCompras()) {
            System.out.println(compra.getDescricao() + " " + compra.getValor());
        }
        System.out.println("******************************************************** ");
        System.out.println("Saldo do cartão:" + cartao.getSaldo());

    }
# }
//CLASSE CARTÃO DE CRÉDITO
import java.util.ArrayList;
import java.util.List;

public class CartaoDeCredito {

    private double limite;
    private double saldo;

    private List<Compra> compras;

    public CartaoDeCredito(double limite) {
        this.limite = limite;
        this.saldo = limite;
        this.compras = new ArrayList<>();
    }
//CLASSE COMPRA
public class Compra implements Comparable<Compra> {

  private String descricao;
  private double valor;

    public Compra(String descricao, double valor) {
        this.descricao = descricao;
        this.valor = valor;
    }

    @Override
    public String toString() {
        return "descricao = " + descricao +
                "  valor = " + valor;
    }

    public String getDescricao() {
        return descricao;
    }

    public double getValor() {
        return valor;
    }

    @Override
    public int compareTo(Compra compra) {
        return Double.valueOf(this.valor).compareTo(Double.valueOf(compra.valor));
    }
}
1 resposta

Olá Paulo, tudo bem com você?

Obrigado por compartilhar seu modo de resolução com a comunidade Alura. Continue praticando e conte com a Alura nesta jornada. Abraços e bons estudos!