我已经解决了很长时间以来一直在解决的问题,不幸的是,由于目标Java版本是Java 8,所以我无法使用该解决方案。
Map<List<String>, String> map = new HashMap<>();
map.put(List.of("Los Angeles", "New York", "Chicago"), "USA");
map.put(List.of("Toronto", "Vancover", "Montréal"), "Canada");
Map<String, String> newMap = map.entrySet()
.stream()
.flatMap(entry -> entry.getKey()
.stream()
.map(city -> Map.entry(city, entry.getValue())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
这会给我返回一张地图,例如:{New York=USA, Chicago=USA, Los Angeles=USA, Toronto=Canada}
现在是我的问题,在Java 8中无需使用Map.entry(...)就能得到这个结果吗?
我已经解决了很长时间以来一直在解决的问题,不幸的是,由于目标Java版本是Java 8,因此我无法使用该解决方案。Map ,String> map = new ...
您可以使用
.map(city -> new AbstractMap.SimpleEntry<>(city, entry.getValue())))