我在改變HashMap>中的值時遇到問題。首先我這樣做:java更新hashmap
HashMap<String, ArrayList<Integer>> countries = new HashMap<>();
ArrayList<Integer> medals = new ArrayList<>();
medals.add(0); medals.add(0); medals.add(0);
for(int i = 0; i < COUNTRY.length; i++){
countries.put(COUNTRY[i], medals);
}
我填從一個靜態數組連鍵HashMap中,並添加填充有0的ArrayList,0的一個默認值,0。然後我這樣做:
Integer plus = new Integer(1);
for(int j = 0; j < athletes.size(); j++){
if(j == 3)
break;
Athlete a = athletes.get(j);
ArrayList<Integer> medals = countries.get(a.getCountry());
Integer medal = medals.get(j) + plus;
medals.set(j, medal);
countries.put(a.getCountry(), medals);
}
我有一個ArrayList,裏面充滿了運動員,這些運動員已經根據運動員的結果進行了排序。我想要做的是拿到排名前3的運動員,並更新我的HashMap值,以便ArrayList將有3個數字,代表每個國家贏得多少金牌,銀牌和銅牌。 問題是,當我嘗試用新的ArrayList替換舊值時,它用新的ArrayList替換了HashMap中的所有值,而不是僅使用匹配鍵的值。
我不知道是什麼問題,有什麼建議?
謝謝你,我應該知道我犯了一個愚蠢的錯誤:P 和是的我猜int []更簡單:) – zkranc
我對這個問題掙扎於SO LONG,這是簡單的修復。非常感謝! – maia