Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio resolvido

package com.github.aldenyjr.exercicios;

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

public class TotalComImposto {
    public static void main(String[] args) {
        List<Double> precosProdutos = List.of(29.99, 49.50, 15.75, 99.99);
        double totalSemImposto = precosProdutos.stream().reduce(0.0, Double::sum);
        double totalComImposto = precosProdutos.stream().map(v -> (v * 0.08) + v).reduce(0.0, Double::sum);

        System.out.printf("Valor total antes do imposto: %.2f\n", totalSemImposto);
        System.out.printf("Valor total com imposto de 8%%: %.2f", totalComImposto);
    }
}

Resultado:

Valor total antes do imposto: 195,23
Valor total com imposto de 8%: 210,85
2 respostas
solução!

Oi, Aldeny! Como vai?

Agradeço por compartilhar.

Seu uso de stream(), map e reduce ficou bem organizado, principalmente na forma como você separou o cálculo com e sem imposto. Isso mostra um bom entendimento de transformação e agregação de dados em Java.

Você pode usar o método sum() diretamente após um mapToDouble, que deixa o código mais direto:


List precos = List.of(29.99, 49.50, 15.75, 99.99);

double total = precos.stream()
    .mapToDouble(v -> v * 1.08)
    .sum();

System.out.println(total);

Esse código converte os valores para double, aplica o imposto e soma tudo de forma mais enxuta.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado!