Java使用流对 List<Map<String, Object>> 相同的键值求和
时间: 2024-06-21 19:03:31 浏览: 8
在Java中,你可以使用Stream API来处理`List<Map<String, Object>>`中的相同键值并求和。由于Java的泛型和自动装箱机制,我们需要确保对数值进行正确的类型转换和加法操作。这里是一个示例代码片段:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 假设你有一个List<Map<String, Number>>,例如Integer或Double类型的值
List<Map<String, Number>> mapList =
// 这里是你的列表,填充具体的Map实例
List.of(
Map.of("key", 10),
Map.of("key", 20),
Map.of("otherKey", 30)
);
// 使用Stream API找到相同键并求和
Number sum = mapList.stream()
.flatMap(map -> map.entrySet().stream()) // 遍历每个Map的entrySet
.filter(entry -> "key".equals(entry.getKey())) // 只考虑具有相同键的条目
.mapToInt(Map.Entry::getValue) // 将值转换为IntStream
.sum(); // 求和
System.out.println("Sum of 'key' values: " + sum);
}
}
```