bigdecimal在list.stream求和
时间: 2023-09-15 21:22:39 浏览: 96
js的BigDecimal.js 用于表示金额,修改为vue引用,含原版
您可以使用`BigDecimal`类的`reduce`方法来在`Stream`中求和。以下是一个示例代码:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<BigDecimal> numbers = Arrays.asList(
new BigDecimal("1.0"),
new BigDecimal("2.0"),
new BigDecimal("3.0")
);
BigDecimal sum = numbers.stream()
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Sum: " + sum);
}
}
```
在这个例子中,我们创建了一个`BigDecimal`类型的列表`numbers`,然后使用`stream`方法将其转换为流。接下来,我们使用`reduce`方法来将流中的元素相加,初始值为`BigDecimal.ZERO`,累加函数为`BigDecimal::add`。最后,我们打印出求和的结果。
请注意,`BigDecimal`是不可变的,所以每次相加都会创建一个新的`BigDecimal`对象。因此,在对大量元素进行求和时,可能会造成性能问题。如果需要处理大量数据,可以考虑使用`Double`或`Long`类型来代替`BigDecimal`。
阅读全文