cami-la / desafio-poo-dio

874 stars 1.35k forks source link

Desafio POO 2/5 - Registro de Transações Bancárias com Stream API #65

Open Anselmo-S-Oliveira opened 1 month ago

Anselmo-S-Oliveira commented 1 month ago

Meu código para o desafio 2/5 - Registro de Transações Bancárias com STREAM API está produzindo a saída esperada mas está dando erro, não sei o que está faltando...

import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors;

public class RegistroTransacoesComStream {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    double saldo = scanner.nextDouble();
    int quantidadeTransacoes = scanner.nextInt();

    List<Transacao> transacoes = new ArrayList<>();

    for (int i = 0; i < quantidadeTransacoes; i++) {
        char tipoTransacao = scanner.next().charAt(0);
        double valorTransacao = scanner.nextDouble();

        // Create a new transaction and add it to the list
        Transacao transacao = new Transacao(tipoTransacao, valorTransacao);
        transacoes.add(transacao);

        // Update the balance based on the transaction type
        if (Character.toUpperCase(transacao.getTipo()) == 'D') {
            saldo += valorTransacao; // Deposit
        } else if (Character.toUpperCase(transacao.getTipo()) == 'S') {
            saldo -= valorTransacao; // Withdrawal
        }
    }

    // Display the final balance
    System.out.println("Saldo: " + saldo);
    System.out.println("Transacoes:");

    // Display all transactions
    transacoes.stream()
            .map(transacao -> transacao.getTipo() + " de " + transacao.getValor())
            .collect(Collectors.toList())
            .forEach(System.out::println);

    // Close the scanner to prevent resource leaks
    scanner.close();
}

}

// Transaction class to hold transaction details class Transacao { private char tipo; // 'D' for deposit, 'S' for withdrawal private double valor;

public Transacao(char tipo, double valor) {
    this.tipo = tipo;
    this.valor = valor;
}

public char getTipo() {
    return tipo;
}

public double getValor() {
    return valor;
}

}