使用lambda在List中求和BigDecimal值

时间:2016-06-30 13:07:22

标签: java lambda java-8

我有一个简单的课程:

class Simple {
    private String count;
    private BigDecimal amount;
    private String label;
}

并有一个列表:List<Simple> simples = new ArrayList<>(); 如何在Java 8中使用Lambda将所有列表中的所有简单数量相加?

2 个答案:

答案 0 :(得分:13)

使用Stream和reducer非常容易:

BigDecimal sum = simples
    .stream()
    .map(Simple::getAmount)
    .reduce(BigDecimal::add)
    .get();

答案 1 :(得分:2)

尝试:

BigInteger sum = simples.stream()
                        .map(Simple::getAmount)
                        .reduce(BigInteger.ZERO, BigInteger::add);