获取值的密钥而不是获取密钥值?
答
你不能用简单的Map
(至少不是以一种有效的方式)来做到这一点,因为一个密钥可以有多个值,并且这些值没有以使得它们快速检索的方式存储。仅使用常规Map
,您需要遍历所有条目以查找值的相应键。但是,您可以创建自己的数据结构,其中包含两个地图(一个从A到B,另一个从B到A)创建一个具有1:1映射的双向映射,您可以从B或B查找A从O(1)时间的A(我不使用“key”和“value”,因为在双向映射中,两种类型都是)。查看来自Guava的BiMap(HashBiMap source code)就是一个例子。
您使用的是HashMap吗? –
对于相同的值可能有多个键;你想要哪个? –