将五个map中key相同的值放到一个集合中
时间: 2024-11-22 16:45:14 浏览: 18
将五个Map中键相同的价值放到一个集合中,通常可以使用Java中的流(Stream) API以及Collectors工具类来实现。这里假设这五个Map都是HashMap或类似的键值对存储结构。以下是一个简单的示例:
```java
import java.util.*;
import java.util.stream.*;
Map<String, Object> map1 = ...;
Map<String, Object> map2 = ...;
Map<String, Object> map3 = ...;
Map<String, Object> map4 = ...;
Map<String, Object> map5 = ...;
// 创建一个新的Map来收集有相同键的值
Map<String, List<Object>> result = new HashMap<>();
// 使用Stream同时遍历所有Map
result = Stream.concat(
Stream.of(map1.entrySet()).flatMap(Map.Entry::stream),
Stream.concat(
Stream.of(map2.entrySet()).flatMap(Map.Entry::stream),
Stream.concat(
Stream.of(map3.entrySet()).flatMap(Map.Entry::stream),
Stream.concat(
Stream.of(map4.entrySet()).flatMap(Map.Entry::stream),
Stream.of(map5.entrySet()).flatMap(Map.Entry::stream)
)
)
)
).collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
// 现在result中每个键对应的是一个包含相应键所有值的List
```
在这个例子中,`groupingBy`函数用于按照键分组,而`mapping`则将每个键对应的值转换为列表形式。
阅读全文