码
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]的值时,它总是触发。我试图找到整数值但它似乎不起作用。我怎样才能获得字符串值。
答案 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
}
}