BigDecimal 的总和列表

AJJ*_*AJJ 6 java collections list java-7

我正在使用 Spring、Maven 和 Java 7 开发一个项目。

我有一个带有 bigdecimal 的列表,并且必须总结列表中的所有元素。我知道使用 for 循环我们可以如下,

List<BigDecimal> list = new ArrayList<BigDecimal>();
list.add(new BigDecimal(10.333));
list.add(new BigDecimal(14.333));
BigDecimal result = new BigDecimal(0);
for (BigDecimal b : list) {
     result = result.add(b);
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?使用 google gauva FluentIterable 或 apache ArrayUtils/StatUtils?

小智 6

这是一种仅使用 Java 8 和流来实现的方法:

List<BigDecimal> list = Arrays.asList(new BigDecimal(10.333), //
   new BigDecimal(14.333));
BigDecimal result = list.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
Run Code Online (Sandbox Code Playgroud)


chr*_*ke- 3

如果您不能使用 Java 8 lambda 或 Groovy 闭包,在这种情况下您可以编写一行代码来替换您的四行代码,那么您的代码就非常清晰。使用基于库的迭代工具几乎肯定会使代码变得更加复杂并且肯定使其速度变慢。你把它做得尽可能简单;没关系。