给定一个ImmutableMap<K,V>
,其中值是非唯一的,有没有办法将其反转/反转/转换为类似ImmutableMap的集合,允许多个键?
我认为它最终会成为ImmutableSetMultiMap<V,K>
我之前使用的是ImmutableSetMultiMap<K,V>
,但意识到它允许多个密钥,这可能是未来可能的错误来源。
这也会使ImmutableBiMap无效,因为可能存在非唯一值。
答案 0 :(得分:4)
ImmutableSetMultimap<Value, Key> inverse = immutableMap.asMultimap().inverse();
如果我理解正确的话,那就是你要找的。 p>
如果您想将此作为地图,请在结果上调用asMap()
,然后您将获得ImmutableMap<Value,Collection<Key>>