0

给定该值,我需要获取该值在 Map 中所属的索引或键,而无需对其进行迭代。我正在使用java。

谢谢

4

4 回答 4

2

Guava 有一个BiMap,它是一个双向映射(每个键和每个值都是唯一的)。

如果您不想使用外部库,则只有 2 个选项:

  • 使用普通的HashMap,您将需要遍历键
  • 使用 2 个 hashmap,一个将键关联到值,一个将值关联到键(本质上是双向映射所做的)。
于 2013-01-11T10:06:43.797 回答
1

您总是可以使用来自 commons-collections 的 BidiMap:

http://commons.apache.org/collections/apidocs/org/apache/commons/collections/BidiMap.html

于 2013-01-11T10:03:56.347 回答
1

你必须使用某种BidirectionalMap. 例如这个:http ://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/BiMap.html

于 2013-01-11T10:06:34.307 回答
0

你不能不迭代。

此外,该值可能属于多个键,因此您的问题有些没有实际意义。


如果键/值之间存在一对一的关系,您可以通过使用两个映射来做到这一点 - 一个用于关系的每个方向 - 并将值查找为第二个(反向)映射的键。

于 2013-01-11T10:03:39.783 回答