Java从hashmap中获取特定值

时间:2015-03-28 02:41:11

标签: java string hashmap integer

   HashMap <String, Integer> polllist = new HashMap<>();
   public boolean onCommand(CommandSender s, Command Cmd, String label, String[] args)
   {

   }

这是我将我正在搜索的Integer添加到hashmap

的地方
    String combine = args[1] + " " + args[2] + " " + args[3] + " " + msg;
    int pn = Integer.valueOf(args[1]);
    int pollnumber = pn;
    polllist.put(combine, pollnumber);

所以我创建了一个包含String和Integer的HashMap。我试过这样做。

    if(polllist.containsValue(args[1]))
    {

    }

这似乎不起作用,我放了一个else语句,当我知道我在hashmap中放置一个等于args [1]的值时,它总是触发。我试图找到整数值但它似乎不起作用。我怎样才能获得字符串值。

2 个答案:

答案 0 :(得分:1)

试试这个

if(polllist.containsValue(Integer.valueOf(args[1])))

您在设置值之前已从String转换为int,因此在查找时您必须执行相同操作。

此外,这是一种使用HashMap的非常落后的方法。当大多数查找发生在键而不是值上时,HashMap表现最佳。您可以考虑只切换它们,如:HashMap<Integer, String>。但这需要你的整数是唯一的。

答案 1 :(得分:-1)

你的字符串是关键。因此你应该使用:

 for (String key : polllist.keySet()) { 
     if(polllist.get(key).equals(yourInteger) ) 
         { 
           //do something 
         } 
  }