有没有办法逆转/反转ImmutableMap

时间:2014-11-15 18:18:27

标签: java guava

给定一个ImmutableMap<K,V>,其中值是非唯一的,有没有办法将其反转/反转/转换为类似ImmutableMap的集合,允许多个键?

我认为它最终会成为ImmutableSetMultiMap<V,K>

我之前使用的是ImmutableSetMultiMap<K,V>,但意识到它允许多个密钥,这可能是未来可能的错误来源。

这也会使ImmutableBiMap无效,因为可能存在非唯一值。

1 个答案:

答案 0 :(得分:4)

ImmutableSetMultimap<Value, Key> inverse = immutableMap.asMultimap().inverse();

如果我理解正确的话,那就是你要找的。

如果您想将此作为地图,请在结果上调用asMap(),然后您将获得ImmutableMap<Value,Collection<Key>>