2012-04-08 89 views
0

我正在開發一個遊戲爲Android 這個遊戲讀取一個int []數組,並形成一個地圖出來的把兩個數組一起

現在我想隨機較小的陣列添加到這個陣列 但我怎麼能我沒有做做任何線索

我已經在這裏搜查,如果您需要做很多次陣列是不是一個很好的選擇,我沒有找到一個好的解決辦法

+0

你的意思是你想較小陣列中追加到地圖數組的末尾,或將它們複製到地圖數組在隨機偏移得到向量的長度? – ravuya 2012-04-08 18:42:43

+0

多數民衆贊成在這正是我的意思 – user1293780 2012-04-08 18:44:49

+0

正確的術語搜索,也許,「如何連接Java數組」,並找到適當的解決方案,我猜:http://stackoverflow.com/questions/80476/how-to -concatenate-two-arrays-in-java如果使用索引進行遊戲,則可以將第二個數組插入到其他位置,而不是隻在末尾添加它。 – 2012-04-08 19:04:57

回答

1

,因爲他們有固定的大小並且每次增加尺寸時都必須重新分配。另外,您必須將舊數組中的值複製到新的更大的數組中。

看看到ArrayList<Integer>代替。

如果它是你的時間只是做一些事情時,你應該這樣做以下

int[] oldArray = new int[Y]; 
int[] smallArray = new int[X]; 
int[] newArray = Arrays.copyOf(oldArray,X+Y); 
for (int i = Y; i < X+Y; ++i) 
    newArray[i] = smallArray[i-Y]; 
+0

什麼爲Y/X? – user1293780 2012-04-09 09:43:47

+0

它們是陣列的大小 – Jack 2012-04-09 14:01:43

0

在Java數組的大小不會改變。您必須創建新的更大/更小的數據並複製數據。 This可能會有幫助。

0

可以使用

Vector<String> vec = new Vector<String>(); 
vec.add("a"); 
vec.add("b); 

想這是你的老向量(或陣列)有兩個數據。如果你想添加更多的數據或要添加其他陣列然後

for(int i=0;i<arr.length;i++) 
{ 
    vec.add(arr[i]); 
} 

你也可以使用

int i=vec.size();