java hashmap 覆盖值
java hashmap overwriting values
我正在尝试使用哈希图来存储 4 个整数的 int 数组。当我添加到 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: 0, Size Before: 0, Size After: 1, 4 0 0 4, hash [0]4 [0]0 [0]0 [0]4 Games Played: 1
这里一切正常,直到我将它添加到哈希中,然后它会 return 这个:
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];
我正在尝试使用哈希图来存储 4 个整数的 int 数组。当我添加到 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: 0, Size Before: 0, Size After: 1, 4 0 0 4, hash [0]4 [0]0 [0]0 [0]4 Games Played: 1
这里一切正常,直到我将它添加到哈希中,然后它会 return 这个:
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];