我的HashMap中有以下条目
<key1,value1>
<key2,value2>
<key3,value2>
<key4,value4>
<key5,value2>
我想找到包含值“value2”的所有键。 答案是包含以下键的KeySet: {KEY2,KEY3,KEY4}
是否可以在HashMap中实现? 感谢
答案 0 :(得分:1)
Map应该以这样的方式使用,即使用键访问值,但似乎你正在反向进行。
如果你确定自己在做什么,那就没有好办法了。迭代地图并将密钥存储在单独的列表中。
更多关注Gauva的Multimap,这可能适合您的要求。
答案 1 :(得分:1)
我想找到包含值“value2”的所有键。答案是包含以下键的KeySet:{key2,key3,key4}
两个选项:
答案 2 :(得分:1)
只需迭代地图的条目并检查当前条目的值是否等于“value2”,然后将其添加到Set。 试试这个
Set<String> keySet = new HashSet<String>();
for (Map.Entry<String, String> entry : map.entrySet())
{
if(entry.getValue().equals("value2")
{
keySet.add(entry.getKey());
}
}
我猜没有其他选择,因为你的地图中有重复的值。