【发布时间】:2020-06-22 12:21:49
【问题描述】:
我正在使用 Java 中的 spigot api 来创建一个插件(用于我的世界)并进行冷却,我将哈希图存储在哈希图中。 外层hashmap是:
Map<String, Map<UUID, Long>> itemCooldowns = new HashMap<>();
当我尝试添加到外部地图内的某个地图时(问题不在于 cdId,我已经检查过):
itemCooldowns.get(cdId).put(p.getUniqueId(), System.currentTimeMillis() + cdTime);
它将它添加到正确的地图(使用 key totem_of_storms_1)和另一个地图(使用 key totem_of_storms_2)。
发生这种情况的另一个例子是,如果 cdId 是 totem_of_time_2,它也会添加到 totem_of_time_1。
我检查过是这条线添加到多个哈希映射itemCooldowns.get(cdId).put(p.getUniqueId(), System.currentTimeMillis() + cdTime);,但我不知道为什么
【问题讨论】:
-
这意味着你的外部 Map 的多个键与同一个
Map<UUID, Long>实例相关联。 -
好的,谢谢,我会调查一下
-
尝试发布minimal, reproducible example。很可能相同的内部映射作为外部映射中多个键的值存在。
-
Eran 和 gscaparrotti 感谢您的帮助,您是对的。如果您愿意,请发布答案并将其设置为正确。
-
@scruffyboy13 如果他们不写答案,请知道在 Stack Overflow 上欢迎并鼓励您写下并接受自己对自己问题的答案。