java stream求和
时间: 2023-10-31 19:07:06 浏览: 47
要在Java中使用Stream求和,可以使用流的mapToInt方法和sum方法。以下是两个示例方法,用于在List<Map<String, Object>>中根据字段求和和相乘并求和:
1. 单字段求和:
```java
public static int flowSum(List<Map<String, Object>> flowList, String sumBy) {
return flowList.stream()
.mapToInt(obj -> MapUtils.getInteger(obj, sumBy, 0))
.sum();
}
```
这个方法接受一个List<Map<String, Object>>和一个sumBy参数,它会将每个Map中对应字段的值映射为整数,并求和返回。
2. 相乘并求和:
```java
public static double flowMulti(List<Map<String, Object>> flowList, String doubleData, String intData) {
return flowList.stream()
.mapToDouble(obj -> MapUtils.getDouble(obj, doubleData, 0.0) * MapUtils.getInteger(obj, intData, 0))
.sum();
}
```
这个方法接受一个List<Map<String, Object>>和两个字段参数doubleData和intData,它会将每个Map中对应字段的值分别映射为double和int,然后进行相乘并求和返回。
请根据具体需求选择适合的方法使用。