import java.util.*;
public class Main {
public static void main(String[] args) {
// 示例数据:List<LinkedHashMap>
List<LinkedHashMap<String, String>> keyParamList = new ArrayList<>();
LinkedHashMap<String, String> map1 = new LinkedHashMap<>();
map1.put("key1", "value1");
map1.put("key2", "value2");
keyParamList.add(map1);
LinkedHashMap<String, String> map2 = new LinkedHashMap<>();
map2.put("key1", "value3");
map2.put("key2", "value4");
keyParamList.add(map2);
LinkedHashMap<String, String> map3 = new LinkedHashMap<>();
map2.put("key1", "value5");
map2.put("key2", "value6");
keyParamList.add(map3);
// 转换为Map<String, List<String>>
Map<String, List<String>> resultMap = keyParamList.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
// 输出结果
System.out.println(resultMap);
//输出结果:{key1=[value1, value5], key2=[value2, value6]}
}
}
在这个示例中,我们首先创建了一个List<LinkedHashMap<String, String>>类型的示例数据keyParamList。然后,我们使用Stream API对keyParamList进行流操作。通过flatMap将每个LinkedHashMap转换为流,并使用groupingBy和Collectors.mapping对键进行分组并映射值为列表。最后,我们将结果存储在Map<String, List>类型的变量resultMap中,并打印输出结果。
请注意,这段代码假设keyParamList中的每个LinkedHashMap都具有相同的键,并且将这些键作为结果的Map的键,将对应的值收集到列表中作为值。如果实际情况不同,可能需要对代码进行适当的修改以满足你的需求。