1
我在for循環中使用HashMap
時遇到問題。我做錯了什麼?我有什麼改變嗎?以下是代碼及其輸出。Java HashMap「put」方法在for循環中
代碼:
public static void main(String[] args) {
ArrayList<Double> arrBuckets = new ArrayList<Double>(3);
HashMap<Integer, ArrayList<Double>> hashMap = new HashMap<Integer, ArrayList<Double>>();
for(int i=1;i<5;i++)
{
arrBuckets.clear();
arrBuckets.add(0,(1.0*i)) ;
arrBuckets.add(1,(2.0*i)) ;
arrBuckets.add(2,(3.0*i)) ;
hashMap.put(i, arrBuckets);
}
System.out.println("hashMap : "+hashMap);
}
下面是輸出:
hashMap : {1=[4.0, 8.0, 12.0], 2=[4.0, 8.0, 12.0], 3=[4.0, 8.0, 12.0], 4=[4.0, 8.0, 12.0]}
但輸出應該是這樣:
hashMap : {1=[1.0, 2.0, 3.0], 2=[2.0, 4.0, 6.0], 3=[3.0, 6.0, 9.0], 4=[4.0, 8.0, 12.0]}
我會提出聲明的循環內爲好。 –
它的定義,應該移動... – Mordechai
它運作良好..感謝彼得勞瑞和dystroy快速回應。 – ss03