当前位置: 代码迷 >> 综合 >> stream()中计算BigDecimal
  详细解决方案

stream()中计算BigDecimal

热度:3   发布时间:2023-12-12 01:59:53.0

实体

public class ApAccountBegin {//数量private BigDecimal beginQuantity;//金额private BigDecimal beginBalance;//汇率private BigDecimal rate;public BigDecimal getBeginQuantity() {return beginQuantity;}public void setBeginQuantity(BigDecimal beginQuantity) {this.beginQuantity = beginQuantity;}public BigDecimal getBeginBalance() {return beginBalance;}public void setBeginBalance(BigDecimal beginBalance) {this.beginBalance = beginBalance;}public BigDecimal getRate() {return rate;}public void setRate(BigDecimal rate) {this.rate = rate;}
}

 

public static void main(String[] args) {BigDecimal bigDecimal = new BigDecimal("20");ArrayList<ApAccountBegin> list = new ArrayList<>(10);ApAccountBegin apAccountBegin = new ApAccountBegin();apAccountBegin.setBeginQuantity(bigDecimal);apAccountBegin.setBeginBalance(bigDecimal);apAccountBegin.setRate(new BigDecimal("1.00"));for(int i=1;i<=10;i++){list.add(apAccountBegin);}//累加求和计算数量BigDecimal reduce = list.stream().map(ApAccountBegin::getBeginQuantity).reduce(BigDecimal.ZERO,BigDecimal::add);//累加求和计算金额 汇率*金额BigDecimal reduce1 = list.stream().map(a->a.getBeginBalance().multiply(a.getRate())).reduce(BigDecimal.ZERO, BigDecimal::add);System.out.println(reduce);System.out.println(reduce1);//另一种写法//System.out.println(list.stream().map(a->a.getBeginBalance().multiply(a.getRate())).reduce((x,y)->x.add(y)).get());}

 

  相关解决方案