小编Vin*_*lur的帖子

使用 Java Streams 将映射列表转换为列表映射

我想将地图列表转换为列表地图。保证所有映射都具有相同的键。

例如,下面的列表

[{key1: val1, key2: val2}, {key1: val3, key2: val4}]
Run Code Online (Sandbox Code Playgroud)

转换为

{key1: [val1, val3], key2: [val2, val4]}
Run Code Online (Sandbox Code Playgroud)

下面的代码使用 for 循环

List<Map<String, Object>> data = getData();

Map<String, List<Object>> result = new HashMap<>();

for (Map<String, Object> element: data) {
    element.forEach((key, val) -> {
        if (result.containsKey(key))
            result.get(key).add(val);
        else
            result.put(key, Arrays.asList(val));
    });
}
Run Code Online (Sandbox Code Playgroud)

我如何才能使用流实现相同的结果?

java dictionary list java-stream

3
推荐指数
3
解决办法
289
查看次数

标签 统计

dictionary ×1

java ×1

java-stream ×1

list ×1