Java 8 Somatório de lista de bigdecimal

3 respostas
A

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…

3 Respostas

G

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!

A

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.

A

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);

Criado 21 de janeiro de 2016
Ultima resposta 21 de jan. de 2016
Respostas 3
Participantes 2