2016-01-20 79 views
-3

我需要創建一個ArrayList來收集某些點的位置。如何在Java中添加更改變量元素到ArrayList

ArrayList<int[]> collection = new ArrayList<int[]> ; 
//the position has 2 coordinations. 
int[] location = new int[2] 
//add first position a,b 
location[0] = a; 
location[1] = b; 
collection.add(location); 
//add second position c,d 
location[0] = c; 
location[1] = d; 
collection.add(location); 

當我嘗試顯示集合,所有元素中是完全一樣的最後一個加入(在這種情況下:[C,d])

如何添加元素到我的ArrayList在這種情況下適當?非常感謝您

+0

做到這一點我不知道add()方法只集合鏈接元素的地址,所以我的所有元素都鏈接到同一個東西。如果我希望集合保存每個元素內的值,我該怎麼做。 –

+0

您不需要創建或重新定義'location' int數組。只要調用'collection.add({a,b});''''和'collection.add({c,d});' –

+0

嗨,那句話是錯誤的。我試過,但它不起作用 –

回答

-1
ArrayList<int[]> collection = new ArrayList<int[]> ; 
    //the position has 2 coordinations. 
    int[] location = new int[2] 
    //add first position a,b 
    location[0] = a; 
    location[1] = b; 
    collection.add(location); 
    //add second position c,d 
    location = new int[2]; //<-here 
    location[0] = c; 
    location[1] = d; 
    collection.add(location); 

其實我建議你封裝你的位置作爲一個POJO,爲了更好的靈活性和可用性。

-1

您需要創建一個新的數組備考每對coirdinates的添加到ArrayList

-1

您可以輕鬆地

collection.add(new int[]{a,b}); 
collection.add(new int[]{c,d}); 
+0

是不是正確的語法'new int [] {a,b}'? –

+0

我也這麼認爲,但不知怎的,這種語法不起作用。我認爲ArrayList聲明在這裏是錯誤的 –

+0

@MickMnemonic出於某種原因,我認爲'new int []'在這個語法中不是必需的,但我可以明白爲什麼會這樣。我會相應地更新答案。 –

相關問題