从List中获取某个属性,比如金额,然后对金额进行累加或者进行计算手续费,或者过滤掉某种情况的订单,在进行计算。

 

  1. //计算订单类型PaymentType是PaymentType.ABC的订单,对其总金额进行乘法运算,乘以0.0007
  2. BigDecimal interest   =
  3. //过滤出PaymentType属性为PaymentType.ABC的订单,在次聚合为List
  4. orders.stream().filter(order -> order.getPaymentType() == PaymentType.ABC).collect(Collectors.toList())
  5. //对金额进行累加运算后,做乘法运算 x0.0007
  6.  .stream().map(order -> order.getGrandTotal()).reduce(BigDecimal.ZERO, BigDecimal::add)
  7. .multiply(new BigDecimal("0.0007"));