2012-04-08 61 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();