gpt4 book ai didi

Java 8 将 Map> 转换为 Map>

转载 作者:行者123 更新时间:2023-12-02 07:45:10 27 4
gpt4 key购买 nike

我有一个 Map 是一个值列表的映射,但我需要将其反转,以便

Map<Integer, List<String>> 

变成

Map<String, List<Integer>>

例如我有

1 -> { A, B, C }
2 -> { B }
3 -> { A, C }

我想看看

A -> { 1, 3 }
B -> { 1, 2 }
C -> { 1, 3 }

在 Java 8 中是否有比遍历映射条目并创建一个集合条目(如果不存在)并添加到列表等更简单的方法来做到这一点?我一直认为这确实很明显,但我无法解决。

提前致谢

最佳答案

未经测试,但你可以这样做:

mapIntToStrings.entrySet().stream()
.flatMap(entryIntToStrings -> entryIntToStrings.getValue().stream()
.map(str -> new AbstractMap.SimpleEntry<>(entryIntToStrings.getKey(), str)))
.collect(groupingBy(Map.Entry::getValue, mapping(Map.Entry::getKey, toList())))

关于Java 8 将 Map<Integer, List<String>> 转换为 Map<String, List<Integer>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com