0

我的问题是:我正在尝试将属性值保存到哈希图中。每次单击时,它都会将一组新变量保存到我的 hashmap 中,但是当我输出保存的变量时,即使我有 hashMap 循环,它也只会显示新保存的变量。为什么是这样?

我有

Map<Boolean, Integer> property = new HashMap<Boolean, Integer>();

作为全局变量

这就是我将变量保存到我的 Hashmap 的方式

property.put(m.turn, tempBoard.current.position);

发生一系列事件后,每次单击某个图像时都会发生这种情况,尽管它们不会影响 Hashmap

然后我返回到创建哈希图的同一个类,但过程不同。我用来循环哈希图的代码是:

for (Map.Entry<Boolean, Integer> entry : property.entrySet()) {
        System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
    }

这只会将新保存的变量输出到 hashmap,而不是任何其他保存变量。

老实说,我一直在搜索谷歌,试图找到它不会从保存变量的开头开始的原因。我找不到任何与我的问题相似的东西,因为每个其他示例都同时将变量保存到哈希图中;永远不会在不同的时间或事件之间。

任何帮助表示赞赏,并对这篇文章的措辞有多么奇怪感到抱歉。我不知道如何更好地解释它:)

4

1 回答 1

0

应该如何在 hashmap 中存储超过 2 个值?我认为您需要了解 hashmap 的工作原理,在 hashmap 中,您针对 UNIQUE 键存储一个 VALUE,如果您使用一些已经添加的键,则 put 方法将始终用传递的新值替换键的旧值,否则它将添加这个值对给定的键。
现在您只需要弄清楚如何存储所有值以及要使用哪种类型的 Key。查看此链接以了解 HashMap https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html的详细信息

于 2015-10-09T09:41:54.827 回答