今天遇到需要将集合中String类型的金额转成BigDecimal格式并求和,之前用的for循环的方法,感觉比较麻烦,今天试着转成了流的形式.
下面两种写法结果一样:
private List<Order> orders = Arrays.asList(
new Order("800"),
new Order("100"),
new Order("2"));
@Test
public void test31() {
BigDecimal reduce = orders.stream().map(Order::getMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("reduce = " + reduce);
BigDecimal reduce1 = orders.stream().map(e->new BigDecimal(e.getMoney())).reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("reduce1 = " + reduce1);
}
```