当前位置: 首页 > 面试题库 >

在Java中遍历HashMap值时如何替换它们

夏侯华彩
2023-03-14
问题内容

我正在使用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);
}


 类似资料:
  • 问题内容: 如何在JSP中循环通过? 问题答案: 就像使用普通Java代码一样。 但是,(JSP文件中的原始Java代码,那些东西)被认为是不明智的做法。我建议安装JSTL(只需将JAR文件放入其中,并在JSP顶部声明所需的taglib)。它有一可以迭代的标签Map。每次迭代都会给你带来反过来,而反过来又具有和方法。 这是一个基本示例: 因此,你的特定问题可以通过以下方式解决: 你需要将Servl

  • 问题内容: 迭代中的项目的最佳方法是HashMap什么? 问题答案: 像这样遍历: 了解更多有关。

  • 问题内容: 我正在尝试编译以下代码: 我在for行中看到一条错误消息: 该方法返回一个(但在这种情况下,返回的结构)。 是我为应用程序创建的枚举(在另一个类文件-中)。 当我在中创建具有相同结构的foreach循环时,我没有遇到此问题。 我究竟做错了什么? 问题答案: 一种更有效的方法: 如果有可能,请定义“ getData”,以便您不需要强制转换。

  • 问题内容: 我想做一个Java游戏。首先,程序要求玩家的数量。之后,它询问他们的名字。我将他们的名字放在ID和分数中。在游戏结束时,我会计算分数,然后将其放在(特定名称的特定分数)中。有谁知道如何做到这一点?这是我的代码: 玩家: 主要: 有谁知道我最后如何打印,例如: 更新: 我主要是这样做的(正如Jigar Joshi建议的那样) 当我将球员的两个名字“ a”和“ b”放进去时,它会显示“分数

  • 我通过一个接一个地放置值来创建HashMap。当我在每次迭代后打印hashmap时,生成的hashmap包含所有键的相同值。我不明白为什么会这样。我已经粘贴了下面的输出 HashMap(String,List(Object))mRestrictions; 输出:- 逐个限制:-{profile\u name=[Test1]} 逐个限制:-{profile\u name=[url],url=[url

  • 问题内容: 我有以下代码,它使用来遍历中的元素。 我如何使用like中的新功能或执行相同任务。提前致谢 问题答案: 这等效于Java 8流API中的代码。不是100%等效,但是您可以了解主要思想。