Java 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

我正在尝试进行一些自定义密钥绑定。 如果按下整数,则使用hashmap发送命令。 我的问题是

  • 它在
    []
  • 它多次发送命令 守则:

    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个非自定义密钥数量