我有一个要转换为哈希映射的对象列表。是否可以创建这种类型的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)));
这将在每个"计划"组下形成"关系"组。