繁体   English   中英

如何在Hashmap中返回特定值的键?

[英]How can i return the keys of a specific value in Hashmap?

我的HashMap中有以下条目

<key1,value1>
<key2,value2>
<key3,value2>
<key4,value4>
<key5,value2>

我想找到所有包含值“ value2”的键。 答案是一个包含以下键的KeySet:{key2,key3,key4}

是否有可能在HashMap中完成? 谢谢

Map应该以通过键访问值的方式使用,但似乎您是在反向进行。

如果您确定自己在做什么,则没有好的方法可以完成。 遍历地图并将密钥存储在单独的列表中。

详细了解Gauva的Multimap ,它可能适合您的要求。

我想找到所有包含值“ value2”的键。 答案是一个包含以下键的KeySet:{key2,key3,key4}

两种选择:

  • 新地图,其中值是键,键是值(如果每个键和值都是唯一的)
  • 遍历地图的条目,并检查当前条目的值是否等于“ value2”,如果是,则将其与结果集一起添加

只是迭代地图的条目,并检查当前条目的值是否等于“ 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());
    }

}

我猜没有其他选择,因为您的地图中有重复的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM