【发布时间】:2021-03-10 18:07:09
【问题描述】:
我想得到如下数据结构:Map
Given 是一个包含字段 als 基元(位置、目的地、距离)或作为键(位置)加地图(目标)的类。从每个独特的位置可以定位到许多目的地(按距离)。
private static class LocationPair {
String position, destination;
int distance;
}
Map<String, Map<String, Integer>> locations = locationPairs.stream()
.collect(Collectors.groupingBy(pair -> pair.position, Collectors.toMap(pair.destination, pair.distance)));
private static class LocationPair {
String position;
Map<String, Integer> target = Collections.singletonMap(destination, distance);
}
Map<String, Map<String, Integer>> locations = locationPairs.stream()
.collect(Collectors.groupingBy(pair -> pair.position, Collectors.mapping(pair -> pair.target)));
关于第二个代码-sn-p:结果应该和第一个代码一样。唯一的区别是LocationPair中提供的数据经过进一步处理,因此目的地和距离已经放入它们的目标地图。
我知道这一定是可能的,但不知何故我无法弄清楚如何完成它。上面的流代码 sn-ps 将显示我的意思,尽管我知道它们不起作用。
非常感谢您的帮助
【问题讨论】:
-
第一个
LocationPair类中没有target字段 -
信息坦克,WJS
标签: java groupingby