java 8 stream 对对象列表中某个类型为BigDecimal的属性求和怎么写
时间: 2024-03-04 15:49:23 浏览: 93
Java中BigDecimal类的使用详解
5星 · 资源好评率100%
和对int类型属性求和类似,对于BigDecimal类型的属性,可以使用Java 8 Stream中的map和reduce方法来实现求和的功能。例如,假设有一个Product类,其中包含一个price属性,可以使用以下代码来计算一个Product列表中所有产品的price之和:
```java
List<Product> products = ...; // 假设已经初始化了一个产品列表
BigDecimal totalAmount = products.stream()
.map(Product::getPrice) // 将每个产品的price属性映射为一个BigDecimal Stream
.reduce(BigDecimal.ZERO, BigDecimal::add); // 对所有BigDecimal元素求和
```
其中,`Product::getPrice` 是一个方法引用,代表获取每个产品的price属性。使用 `map` 将每个产品的price属性映射为一个BigDecimal Stream,再使用 `reduce` 对BigDecimal Stream中的所有元素求和,得到一个总金额。需要注意的是,在reduce方法中要传入一个BigDecimal.ZERO作为初始值,以确保求和结果正确。
阅读全文