将List<Map<String,Object>> list中字段projectWork用stream流的方式相加,说明:该字段是BigDecimal类型,并且还要注意为空的不加进去
时间: 2024-09-20 08:17:30 浏览: 48
projectwork_map_website
在Java中,如果你有一个`List<Map<String, Object>>`列表,其中每个map都有一个名为`projectWork`的字段,这个字段是`BigDecimal`类型,你可以使用Java 8的Stream API来过滤并相加所有非空的`projectWork`值。以下是示例代码:
```java
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
List<Map<String, Object>> list = ...; // 你的list
Optional<BigDecimal> sum = list.stream()
.filter(map -> map.containsKey("projectWork") && map.get("projectWork") instanceof BigDecimal)
.map(Map::get) // 获取项目工作值
.filter(BigDecimal::nonNull) // 过滤掉null值
.reduce(BigDecimal.ZERO, BigDecimal::add); // 相加所有非空值
if (sum.isPresent()) {
BigDecimal totalProjectWork = sum.get();
System.out.println("总项目工作量: " + totalProjectWork);
} else {
System.out.println("没有任何项目工作量");
}
阅读全文