我試圖用一個散列表來存儲一個4整數的int數組。當我添加到散列表中時,它應該添加最近一組4個整數,然後生成一組新的4個數字。但是,它會用新生成的4個整數集來覆蓋所有的值......這似乎很奇怪,因爲我從來沒有告訴它這樣做。有任何想法嗎?這裏是將其添加java hashmap覆蓋值
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);
當我運行該程序,並把它添加到HashMap中這是將打印出的代碼:
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
一切都在這裏工作,直到我有它另添加到哈希值後,將回本:
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
正如你所看到的,第一個整數集已經覆蓋到第二整數集。我不知道爲什麼會發生這種情況。任何幫助表示讚賞!
編輯:很抱歉,我的電腦在我輸入完所有代碼之前發佈了問題。
什麼你的意思是「所有的價值」?這對我們不知道任何涉及的類型並無幫助。一個簡短但完整的程序演示這個問題會使它更容易幫助你。 –
我們需要一個[MCVE](http://stackoverflow.com/help/mcve)和一個更好的問題陳述來回答這個問題。你目前的描述對我來說聽起來含糊不清,因爲這與Map沒有關係,而是對數組引用如何工作的誤解。 – Radiodef
你有沒有重新初始化答案? – chancea