Pro*_*3cy 5 java lambda java-8 java-stream collectors
我有以下结构:
Map<String,Map<String,Map<String,Integer>>>
Run Code Online (Sandbox Code Playgroud)
现在,我想忽略“第一级地图”,并根据“第二级地图”的键来分组(并总结)“第三级地图”。要澄清一些示例条目:
Entry 1: ["1"["A"[[a,1];[b,2]];"B"[[a,3];[c,1]]]]
Entry 2: ["2"["A"[[b,2];[c,1]];"B"[[a,5];[b,0]]]]
Run Code Online (Sandbox Code Playgroud)
所需的输出:
Entry 1: ["A"[[a,1];[b,4];[c,1]]]
Entry 4: ["B"[[a,8];[b,0];[c,1]]]
Run Code Online (Sandbox Code Playgroud)
因此,为此,我首先根据我的2级密钥(“ A”,“ B”)对我的Entry-stream进行分组,如果没有其他操作,则最终得到如下结构:
Map<String,List<Entry<String,Map<String,Integer>>>>
Run Code Online (Sandbox Code Playgroud)
这就是我被困住的地方。我该如何Map<String,Integer>从我的条目列表中获取我的信息(对于每个外部地图,具体而言)?
我假设可以保证需要使用以下简单代码:
initialMap.values().stream()
.flatMap(m -> m.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey));
Run Code Online (Sandbox Code Playgroud)
摘要:
如何变换Map<String,Map<String,Map<String,Integer>>>到Map<String<Map<String,Integer>>不顾最外层Map,分组我最里面Maps按照我的第二个,图层- Keys和总结我Integer的-值key最里面的-值Map。此外,最外面的每个第二级Maps都有一个,因此每个都会有相同的第二级。在3 -级别- s时,可以无法在其他3-级别-发现Key-Value-PairMapKeysKeysetKeysMaps
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |