-4 java java-stream
我想转换地图列表即
List<Map<String,String>
Run Code Online (Sandbox Code Playgroud)
到地图的地图即
Map<String,Map<String,String>>;
Run Code Online (Sandbox Code Playgroud)
在地图列表中我将Distanace存储在两个城市之间.我的地图列表是:
[{Destination = IOWA,distance = 2000,Source = NY},{Destination = OHIO,distance = 3000,Source = NY},{Destination = TX,distance = 2500,Source = NY},{Destination = NC,distance = 1500,Source = TX},{Destination = NY,distance = 2500,Source = TX},{Destination = DEL,distance = 3000,Source = TX}]
现在我必须把它转换成
MAP<String<Map<String,String>>,
Run Code Online (Sandbox Code Playgroud)
这样我们就可以远离所有城市.Outer Map Key将成为Source City.值映射将具有目标城市作为键和源到目标之间的距离作为值.输出格式为:
{TX = {NC = 1500,DEL = 3000,NY = 2500},NY = {IOWA = 2000,TX = 2500,OHIO = 3000}}
我想通过使用Java 8 Stream API进行转换.不知道如何使用groupingby.
正如其他人所指出的那样,您没有使用理想的数据结构.但在这种情况下,这应该做你想要的:
Map<String, Map<String, String>> distancesBySource = distances.stream()
.collect(Collectors.groupingBy(m -> m.get("Source"),
Collectors.toMap(m -> m.get("Destination"), m -> m.get("distance"))));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |