java - 如何更新 HashMap 中的所有值?

标签 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,无论键、每个“刻度”或帧如何。有没有办法增加 HashMap 的所有整数值,或者如果没有,可以采用另一种方法来解决此问题。非常感谢您的帮助。另外,这是我的第一篇文章,所以请告诉我我做得是否正确。

最佳答案

最好的方法是使用迭代器:

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

关于java - 如何更新 HashMap 中的所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552953/

相关文章:

java - 什么是NullPointerException,我该如何解决?

java - Android Studio - 在每个应用程序重新编译时重新编译java模块

java - 在 swing 中使用双缓冲区时出现 NullPointerException

javascript - 如何在processing.js中画一条line()?

java - 为同一网络上连接的一组系统创建公共(public)数据库连接

java - 通用父对象不能在没有转换的情况下作为子对象返回

javascript - 如何在processing.js函数外部访问processing.js 'width'和 'height'

javascript - 如何在下面的处理中创建一个图形器

processing - 处理中三个椭圆的轮播

audio - 处理:将记录的声学空间(脉冲响应)应用于音频文件