Java HashMap键事件
我正在尝试进行一些自定义密钥绑定。 如果按下整数,则使用hashmap发送命令。 我的问题是Java HashMap键事件,java,hashmap,key-bindings,Java,Hashmap,Key Bindings,我正在尝试进行一些自定义密钥绑定。 如果按下整数,则使用hashmap发送命令。 我的问题是 它在[] 它多次发送命令 守则: for (String key : CustomKeys.keySet()) { Integer value = CustomKeys.get(key); if (keyIsPressed(value)) { print(CustomKeys.keySet().toString()); break; //Tried to
[]
for (String key : CustomKeys.keySet()) {
Integer value = CustomKeys.get(key);
if (keyIsPressed(value)) {
print(CustomKeys.keySet().toString());
break; //Tried to break it so it didnt send it mutiple times. didnt work
}
}
如果我正确理解了您的问题,您希望在按下值(地图中的值)时打印键(地图中的字符串)。如果使用break,当遇到它时,它将退出循环。 如果要检查映射中的重复值,请执行以下操作
public static HashMap<String, Integer> CustomKeys = new HashMap<String, Integer>();
public HashSet<Integer> hs = new HashSet<>();
for (String key : CustomKeys.keySet()) {
Integer value = CustomKeys.get(key);
if(keyIsPressed(value)) {
if(!hs.contains(value)) {
hs.add(value);
print(CustomKeys.keySet().toString());
}
else {
sysout("duplicate");
}
}
}
publicstatichashmap CustomKeys=newhashmap();
public HashSet hs=新HashSet();
for(字符串键:CustomKeys.keySet()){
整数值=CustomKeys.get(key);
如果(按键按下(值)){
如果(!hs.包含(值)){
增值税;
打印(CustomKeys.keySet().toString());
}
否则{
系统输出(“副本”);
}
}
}
很明显,无论这是怎么回事,哈希映射中都有重复的值。如果按下一个键。在哈希映射中指定整数的键。在hashmap中发送字符串。它做到了这一点。但它确实多次出现。还可以在字符串周围打印[]如果按了,是否要打印哈希映射中的键?抱歉,我在完成之前按了enter键。现在就读,你能告诉我们你的hashmap是什么样子吗?public static hashmap CustomKeys=new hashmap();重复值:)不是钥匙……)静态{CustomKeys.put(“Yes”,Keyboard.KEY_RSHIFT);}非常确定它就在那里once@CodersRock100%确定存在重复,否则您描述的行为不会发生。这行代码只出现一次这一事实与此无关。你知道这些符号常量的所有值都是不同的吗?谢谢,但我修正了它。这是一个derp错误,它被放在了我所有的非定制钥匙上。所以它打印出x个数量乘以x个非自定义密钥数量