HashMap.containsValue - 重点是什么?

Fre*_*rik 8 java hashmap

我有一个HashMap,我需要通过整数值获取一个项目.我注意到有一个containsValue()函数,但看起来我仍然需要迭代遍历地图才能找到正确的索引.

我的问题是; 如果我之后需要遍历它,为什么要使用containsValue()?

另外,我完全错过了这一点吗?;-)

Arn*_*ter 8

地图将键映射到值.如果您有值并且您知道地图包含此值,为什么还需要该键?

另一方面,如果您确实需要密钥或者您只拥有该值的属性,则可以迭代entrySet(),检查值并返回密钥(如果找到):

for (Map.Entry<Index,Value> entry : map.entrySet()) {
  if (entry.getValue().getXy().equals(xy)) {
    return entry.getKey();
  }
}
Run Code Online (Sandbox Code Playgroud)


Rid*_*del 6

地图是关键,以保值.说包含的值仅作为指示.我认为要有一个双向链接允许你从值中检索键,你将不得不依赖像google-collections中的BiMap这样的东西