如何更新HashMap中的所有值?

时间:2014-05-08 21:33:56

标签: java processing

我正在使用处理,我有一个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值,或者,如果没有,还有另一种解决此问题的方法。非常感谢您的帮助。另外,这是我的第一篇文章,所以请告诉我我做得对。

1 个答案:

答案 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);
  }