gpt4 book ai didi

java - 在 Java 8 中使用 Lambda 从 Map of Maps 生成 Map

转载 作者:行者123 更新时间:2023-12-02 14:14:18 28 4
gpt4 key购买 nike

我有一个格式为“ map 的 map ”

Map < Integer, Map < String, Integer >>

如果我有以下格式的数据

<1>, << X, 11 >, < Y, 13 >, < Z, 15 >>
<2>, << X,12 >, < A, 23 >, < L, 41 >>

如何使用 Java 8 lambda 处理此问题并生成以下内容

<1>, <[11, 13, 15]>
<2>, <[12, 23, 41]>

即生成另一个Map,其中键是外部Map的键,值是内部Map的值的List。我知道如何以常规方式执行此操作,但我正在研究如何使用 Java 8 Lambda。

最佳答案

您可以使用Collectors.toMap重新创建 Map<Integer, List<Integer>> :

input.entrySet().stream()
.collect(Collectors.toMap(e->e.getKey(),
e->new ArrayList(e.getValue().values())));

在这段代码中,我们收集Entry<Integer, Map<String, Integer>>进入Map<Integer, List<Integer>>通过转换它们使值变为 List<Integer>内部映射的值,而键保持不变。

你可以测试一下here .

关于java - 在 Java 8 中使用 Lambda 从 Map of Maps 生成 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41896294/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com