我有一张地图
Map<Long, List<Set<Long>>> map1; Example: Map<City_Id, List<Set<Subtier_Cities_ids>>>
还有另一张地图`
Map<Long, Set<Long>> map2; Example: Map<Subtier_Cities_ids,Set<Villages_ids>>`
我想比较map1的值(列表中的第二个值)和map2的键并带来新的map
Map<Long, Set<Long>> map3; Example: Map<City_Id, Set<Villages_ids>>
您可以通过迭代map1的条目然后迭代Sets列表来实现这一点。如果我理解正确的话,代码应该是这样的:
Map<Long, List<Set<Long>>> map1 = ...; // Your map1
Map<Long, Set<Long>> map2 = ...; // Your map2
Map<Long, Set<Long>> map3 = new HashMap<>(); // Your map3
for (Map.Entry<Long, List<Set<Long>>> entry : map1.entrySet()) {
Long cityId = entry.getKey();
List<Set<Long>> sets = entry.getValue();
Set<Long> villages = new HashSet<>();
for (Set<Long> subTierCities : sets) {
for (Long subTierCity : subTierCities) {
Set<Long> villageSet = map2.get(subTierCity);
if (villageSet != null) {
villages.addAll(villageSet);
}
}
}
map3.put(cityId, villages);
}