stream合并多个HashMap<String,Integer>
时间: 2023-11-28 08:51:35 浏览: 78
多文件合并
要将多个HashMap<String,Integer>合并到一个流中,可以使用Stream的flatMap方法和Collectors的toMap方法。下面是一个简单的示例代码:
```
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class MergeHashMaps {
public static void main(String[] args) {
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
Map<String, Integer> map2 = new HashMap<>();
map2.put("c", 3);
map2.put("d", 4);
Map<String, Integer> map3 = new HashMap<>();
map3.put("e", 5);
map3.put("f", 6);
Map<String, Integer> mergedMap = Stream.of(map1, map2, map3)
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Integer::sum));
System.out.println(mergedMap);
}
}
```
输出结果为:
```
{a=1, b=2, c=3, d=4, e=5, f=6}
```
在这个示例中,我们首先创建了三个HashMap<String,Integer>,然后使用Stream的of方法将它们包装成一个流。接着使用flatMap方法将每个Map的entrySet流合并成一个流。最后使用Collectors的toMap方法将这个流转换为一个新的Map<String,Integer>,其中key为entry的key,value为entry的value,如果有重复的key,则将它们的value相加。
阅读全文