输入:
[
{
"A": "valToGroup_1",
"B": "xxx"
},
{
"A": "valToGroup_1",
"B": "yyy"
},
{
"A": "valToGroup_2",
"B": "zzz"
}
]
输出:
"valToGroup_1":[
{"A": "valToGroup_1",
"B": "xxx"
},
{"A": "valToGroup_1",
"B": "yyy"
}
]
"valToGroup_2":
[
{"A": "valToGroup_2",
"B": "zzz"
}
]
也就是说,给定一个List输入,其中每个条目都是一个映射,我想通过所有映射共享的密钥的特定对应值返回分组。
假设:
我认为不使用流媒体就很简单: 迭代列表,获取“A”的值,并添加/创建一个条目,但我认为这将是一个很好的流媒体课程,可以导致更清晰的代码。
答案 0 :(得分:-1)
Map<String, List<Map<?, ?>>> map = list.stream()
.collect(Collectors.groupingBy(m -> m.get("A").toString()));