java 如何使用流相加list<map>中的某个键的值
时间: 2024-04-15 07:29:32 浏览: 16
在Java中,你可以使用流(Stream)来对List中的Map的某个键的值进行相加。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个包含Map的List
List<Map<String, Integer>> list = new ArrayList<>();
// 创建第一个Map对象
Map<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
map1.put("C", 3);
list.add(map1);
// 创建第二个Map对象
Map<String, Integer> map2 = new HashMap<>();
map2.put("A", 4);
map2.put("B", 5);
map2.put("C", 6);
list.add(map2);
// 指定要相加的键
String keyToSum = "B";
// 使用流对List中的Map的某个键的值进行相加
int sum = list.stream()
.mapToInt(map -> map.getOrDefault(keyToSum, 0))
.sum();
System.out.println("Sum of key '" + keyToSum + "': " + sum);
}
}
```
在上述代码中,我们首先创建了一个包含Map的List对象。然后,我们创建了两个Map对象并将其添加到List中。接下来,我们指定要相加的键`"B"`。
使用流(Stream),我们通过`mapToInt`方法将List中的每个Map对象转换为基本类型`int`流。然后,我们使用`map`操作获取指定键的值(如果键不存在,默认为0),最后使用`sum`方法对所得到的值进行求和。
运行以上代码将输出:Sum of key 'B': 7,表示List中所有Map对象中键`"B"`对应的值的总和为7。
希望以上信息能对你有所帮助!如果你还有其他问题,请随时提问。