一个Java多图,允许按值快速查找键

Ben*_*Ben 10 java multimap guava

我有一个multimap(就像Guava提供的那样):

Multimap<K, V>
Run Code Online (Sandbox Code Playgroud)

这在逻辑上可以看作:

Map<K, Set<V>>
Run Code Online (Sandbox Code Playgroud)

我的multimap中的数据具有唯一键和唯一值.即,永远不会将相同的值分配给多个键.

除了维护两个Map结构之外,是否有人知道现有的class/api可能会让我通过键或值快速查找.

例如

Collection<V> get(K)

...and...

K getKeyByValue(V)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,地图必须是可变的,即我的数据一直在变化.(对于不可变映射,Guava提供了一个ImmutableMultimap.inverse(),如果我的Map可以是不可变的,它将解决这个问题.)

任何帮助都会得到赞赏.

小智 -3

我想你可能需要这个类:org.apache.commons.collections.map.MultiValueMap

它是 ASF commons-collections.jar ,文档:http://commons.apache.org/proper/commons-collections/javadocs/api-3.2.1/org/apache/commons/collections/map/MultiValueMap.html