Java 8 Somatório de lista de bigdecimal

Olá gostaria de saber se este somatório de uma lista de bigDecimal está certo usando o Java 8 , ou daria pra ser menor ou ta feio a codificação que fiz.

  //Classe original da lista 
        public class SaldosFinanciamentos{
          
              //variavel bigdecimal para realizar o somatorio 
              private BigDecimal saldoAnterior; 

              //gets and setts 

       }

    public class Teste{ 
       
          List<SaldosFinanciamentos> saldosVos = new ArrayList()<>; 
      
           public void teste() { 

                double soma = saldosVOs.stream().map(item-> 
                   item.getSaldoAnterior()).mapToDouble(BigDecimal::doubleValue).sum();
            }
     } 

O resultado está batendo ok, gostaria de saber se tem um jeito certou ou melhor…

Certamente devem ter inúmeras formas de se fazer, mas você usou bem os recursos do strem() e lambda, conseguindo uma expressão bem enxuta.

Parabens!

1 curtida

Valeu , estava vendo se nao da pra reduzir ainda mais … pois tenho q passar pra double . queria saber se não da pra fazer direto.

Consegui o que eu queria , mas se alguém puder sugerir melhor agradeço . Fiz o somatório sem precisar transformar para double. Valeusss…

BigDecimal soma2= saldosVOs.stream().map(item->item.getSaldoAnterior()).reduce(BigDecimal.ZERO,BigDecimal::add);

2 curtidas