【发布时间】:2021-03-12 00:39:52
【问题描述】:
例如我有一个 Map
{
"North America": ["New York", "Vancouver"],
"Europe": ["London", "Paris"]
}
我想将其转换为 Map
{
"New York": "North America",
"Vancouver": "North America",
"London": "Europe",
"Paris": "Europe"
}
如何在 Java 8 中使用 stream() 来实现这一点?
【问题讨论】:
-
请向我们展示您到目前为止所做的尝试以及您坚持的部分。如果您对流完全陌生,那么tutorial 可能会有所帮助
-
需要小心转换为可能有重复键的东西......使用您的类比,您可能必须将其放入地图“Melbourne”:“Australia”,“Melbourne”:“ England", "Melbourne" : "North America" [爱荷华州、阿肯色州和佛罗里达州中的 3 个]。
-
我不相信你会单独使用
stream()找到一个优雅的解决方案,因为你需要考虑重复的键/值。迭代地图可能是最好的选择,虽然我可能是错的。 -
@Zephyr
Collectors.groupingBy会自动处理重复项。
标签: java java-8 java-stream