从List中获取某个属性,比如金额,然后对金额进行累加或者进行计算手续费,或者过滤掉某种情况的订单,在进行计算。
- //计算订单类型PaymentType是PaymentType.ABC的订单,对其总金额进行乘法运算,乘以0.0007
- BigDecimal interest =
- //过滤出PaymentType属性为PaymentType.ABC的订单,在次聚合为List
- orders.stream().filter(order -> order.getPaymentType() == PaymentType.ABC).collect(Collectors.toList())
- //对金额进行累加运算后,做乘法运算 x0.0007
- .stream().map(order -> order.getGrandTotal()).reduce(BigDecimal.ZERO, BigDecimal::add)
- .multiply(new BigDecimal("0.0007"));