java - 如何在 Java 中迭代 HashMap 值时替换它们

标签 java hashmap runnable

我正在使用 Runnable 每秒自动从玩家的冷却时间中减去 20,但我不知道如何在迭代时替换值的值。如何让它更新每个键的值?

public class CoolDownTimer implements Runnable {
    @Override
    public void run() {
        for (Long l : playerCooldowns.values()) {
            l = l - 20;
            playerCooldowns.put(Key???, l);
        }
    }

}

最佳答案

使用 Java 8:

map.replaceAll((k, v) -> v - 20);

使用 Java 7 或更早版本:

您可以遍历条目并按如下方式更新值:

for (Map.Entry<Key, Long> entry : playerCooldowns.entrySet()) {
    entry.setValue(entry.getValue() - 20);
}

关于java - 如何在 Java 中迭代 HashMap 值时替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993403/

相关文章:

java - 扩展最终类或替换它

java - Hibernate 映射 "class"必须匹配

ruby-on-rails - rails ActiveRecord : Multiple conditions in find

java - 关于HashMap,重新散列

Android 停止 Runnable onBackPressed()

java - 如何使用 JDBC 驱动程序连接到 Databricks Delta 表

java - Swing 的removeAll() 是否将所有删除的元素设置为null?

java - 从 Java 中的 Hashmap 数据循环遍历数组

java - 无法在某些设备上未调用 Looper.prepare() 的线程内创建处理程序

java - 如何使用预先存在的可运行对象,限制要创建的可运行对象的数量。?