Java:将一个Object List转换为另一个hashmap中的hashmap



我有一个要转换为哈希映射的对象列表。是否可以创建这种类型的Map<String, Map<String, List<Object>>哈希映射?

原因是我需要根据对象中的一些属性对它们进行排序,这样我以后就可以迭代了。下面是物体当前外观的Json:

[
object1: {plan: "11", relationship: "A", etc...},
object2: {plan: "12", relationship: "A", etc...},
object3: {plan: "11", relationship: "B", etc...},
]

我试图使用Collectors将其放入HashMap,但我对第二个哈希图感到困惑,我似乎无法将关系列表放入Map

Map<String, Map<String, List<myObject>> myHash = objectList
.stream()
.collect(Collectors.toMap(myObject::plan, 
a -> a.stream().collect(Collectors.groupingBy(myObject::relationship))));

我想要的是类似的东西

[
{
key: "11", 
value: [
{key: "A", value: [ object1 ]},
{key: "B", value: [ object3 ]}
]
},
{
key: "12",
value: [{key: "A", value: [ object2 ]}]
}
]

您可以分组两次,"关系"分组收集器位于"计划"分组收集器的下游:

Map<String, Map<String, List<myObject>> myHash = objectList
.stream()
.collect(Collectors.groupingBy(myObject::getPlan, 
Collectors.groupingBy(myObject::getRelationship)));

这将在每个"计划"组下形成"关系"组。

最新更新