-2

いくつかのカスタムキーバインドを作成しようとしています。整数が押された場合にコマンドを送信するためにハッシュマップを使用します。問題があります

  1. でコマンドを実行します[]
  2. コマンドを複数回送信します。

コード:

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
    }
}
4

2 に答える 2

0

私があなたの質問を正しく理解しているなら、あなたは値(あなたの地図の値)が押されたときにキー(あなたの地図の文字列)を印刷したいと思います。マップ内の重複する値を確認したい場合は、次のようにします。

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");
}
        }
    }
于 2012-10-02T22:38:37.290 に答える
0

明らかに、これが何であれ、ハッシュマップに重複する値があります。

于 2012-10-02T22:45:54.027 に答える