【发布时间】:2016-01-26 05:25:36
【问题描述】:
我在反转给定映射并将其反转的键和值存储到另一个映射中时遇到了一些麻烦。我有一个方法原型如下:
public static Map<String, Set<String>> reverse (Map <String, Set<String>> graph);
因此,如果我有有向图的示例键,则:
{c -> arraySet{f, e}}
{b -> d}
{a -> arraySet{c, b}}
{d -> g}
{e -> d}
{f -> arraySet{g, d}}
我需要有效地反转此图,以便使用 d -> b 代替 b -> d。
我认为这对我来说就是交换原始图中的值和键并将它们添加到 reverseMap。我想我可以遍历图中给定键的每组值,然后将它们存储在一个列表中。
很遗憾,我在实施和思考时遇到了麻烦。我真的很感激朝着正确的方向轻推。
【问题讨论】:
-
您可能对 Guava 的Multimaps 感兴趣。