java哈希映射覆盖值

java哈希映射覆盖值,java,hashmap,overwrite,Java,Hashmap,Overwrite,我试图使用哈希映射来存储一个由4个整数组成的整数数组。当我添加到hashmap时,它应该添加最近的一组4个整数,然后生成一组新的4个数字。但它会用新生成的4个整数覆盖所有值。。。这似乎很奇怪,因为我从来没有让它这么做过。有什么想法吗?下面是添加它的代码 System.out.println("Games Played: " + gamesPlayed); System.out.println("Size Before: " + scoreAnswer.size()); scoreAnswer.p

我试图使用哈希映射来存储一个由4个整数组成的整数数组。当我添加到hashmap时,它应该添加最近的一组4个整数,然后生成一组新的4个数字。但它会用新生成的4个整数覆盖所有值。。。这似乎很奇怪,因为我从来没有让它这么做过。有什么想法吗?下面是添加它的代码

System.out.println("Games Played: " + gamesPlayed);
System.out.println("Size Before: " + scoreAnswer.size());
scoreAnswer.put(gamesPlayed, answer); //gamesPlayed will increase by 1 every time right after
System.out.println("Size After: " + scoreAnswer.size());
for (int i = 0; i < maxPin; i++) {
    System.out.println(answer[i]);
}
System.out.println("hash");
for (int i = 0; i < scoreAnswer.size(); i++) {
    int[] a = scoreAnswer.get(i);
    for (int j = 0; j < a.length; j++) {
        System.out.println("[" + i + "]"  + a[j]);
    }
}
gamesPlayed++;
System.out.println("Games Played: " + gamesPlayed);
这里一切正常,直到我让它在散列中添加另一个,然后它将返回以下内容:

Games Played: 1, Size Before: 1, Size After: 2, 4 2 0 4, hash [0]4 [0]2 [0]0 [0]4 [1]4 [1]2 [1]0 [1]4, Games Played: 2
如您所见,第一组整数已覆盖为第二组整数。我不知道为什么会这样。感谢您的帮助


编辑:很抱歉,在我输入完所有代码之前,我的计算机就发布了这个问题。

根据您的代码,变量“answer”必须是要放入hashmap的数组, 我想您每次都需要使用
new
关键字初始化它,如下所示

int[] answer = new int[4];

你说的“所有价值观”是什么意思?我们不知道所涉及的任何类型,这没有帮助。一个简短但完整的程序来演示这个问题会让你更容易得到帮助。我们需要一个更好的问题陈述来回答这个问题。在我看来,您当前的描述似乎与映射无关,而是对数组引用如何工作的误解。您是否重新初始化过
应答
?看起来您应该使用
列表
,而不是
映射
,因为键似乎是0、1、2。你还没有给我们一个MCVE。我们需要一个完整的示例,包括
scoreAnswer
的声明。非常感谢,这就是我所缺少的,现在一切都正常了
int[] answer = new int[4];