我正在使用处理,我有一个HashMap,我希望能够将所有值增加1。 代码如下所示:
HashMap<Character, Integer> keyStates = new HashMap<Character, Integer>();
void press(Character k) {
keyStates.put(k, 1);
}
void release(Character k) {
keyStates.put(k, 0);
}
整数告诉我,我按了一个键多久了。因此,我希望将此HashMap的所有值增加1,而不管键,每个&#34; tick&#34;或框架。有没有办法增加HashMap的所有Integer值,或者,如果没有,还有另一种解决此问题的方法。非常感谢您的帮助。另外,这是我的第一篇文章,所以请告诉我我做得对。
答案 0 :(得分:2)
最好的方法是使用Iterator:
Iterator<Map.Entry <Character, Integer> > it = keyStates.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Character, Integer> pair = it.next();
Integer newCount = (pair.getValue() == null) ? 1 : pair.getValue() + 1 ;
pair.setValue(newCount);
}