Java 对List中的对象属性BigDecimal求和
时间: 2023-12-10 17:38:28 浏览: 172
BigInteger和BigDecimal
可以使用 Java 8 中的 Stream API 来对 List 中的 BigDecimal 属性求和。具体实现可以参考以下代码:
```java
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建一个包含 BigDecimal 属性的对象列表
List<MyObject> list = new ArrayList<>();
list.add(new MyObject(BigDecimal.valueOf(1.23)));
list.add(new MyObject(BigDecimal.valueOf(4.56)));
list.add(new MyObject(BigDecimal.valueOf(7.89)));
// 使用 Stream API 对 BigDecimal 属性求和
BigDecimal sum = list.stream()
.map(MyObject::getBigDecimal)
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Sum: " + sum);
}
}
class MyObject {
private BigDecimal bigDecimal;
public MyObject(BigDecimal bigDecimal) {
this.bigDecimal = bigDecimal;
}
public BigDecimal getBigDecimal() {
return bigDecimal;
}
}
```
在上面的代码中,我们首先创建了一个包含 BigDecimal 属性的对象列表 `list`,然后使用 Stream API 的 `map` 方法将列表中的每个对象映射成其 BigDecimal 属性,最后使用 `reduce` 方法对这些 BigDecimal 属性进行求和。注意,在 `reduce` 方法中,我们使用了 `BigDecimal::add` 方法作为累加器函数,以确保精度不丢失。
阅读全文