gpt4 book ai didi

java - 使用 Java 8 Streams 将模型列表转换为具有内部映射的映射

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:25 25 4
gpt4 key购买 nike

我有一个 List<Model> :

[
{parent: "parent", child: "child1", sensor: "wohoo"},
{parent: "parent", child: "child1", sensor: "bla"},
{parent: "parent", child: "child2", sensor: "wohoo2"}
]

我想将其转换为 map <String, Map<String, List<String>>> .

 {
parent: {
child1: ["wohoo", "bla"],
child2: ["wohoo2"]
},
}

我已经试过了:

 Map<String, Map<String, List<String>>> test = currentlyReportingAgents
.stream()
.collect(Collectors.groupingBy(
Model::getParent,
Collectors.groupingBy(Model::getChild, Collectors.toList())));

但是有一些有线编译错误..我错过了什么?

编辑:添加了错误的屏幕截图: enter image description here

最佳答案

您的解决方案返回不同的类型:

Map<String, Map<String, List<Model>>> = ...;

要实现你想要的,你需要转一个List<Model>进入List<String>通过 mapping(mapper, downstream) :

Map<String, Map<String, List<String>>> r = currentlyReportingAgents.stream()
.collect(groupingBy(Model::getParent,
groupingBy(Model::getChild, mapping(Model::getChild, toList()))));

关于java - 使用 Java 8 Streams 将模型列表转换为具有内部映射的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40380765/

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