2012-04-08 4 views
0

Я занимаюсь разработкой игры для андроид эта игра читает INT [] массив и формирует карту из негоВвод двух массивов вместе

теперь я хочу, чтобы случайно добавить меньшие массивы в массив , но как я могу делать, что у меня нет никакого ключа

Я искал здесь, и я не нашел хорошее решение

+0

ли вы имеете в виду вы хотите добавить меньшие массивы к концу массива карты, или скопировать их в массив карты на случайное смещение ? – ravuya

+0

это именно то, что я имею в виду – user1293780

+0

. Правильный термин для поиска - это, возможно, «How-to concatenate Java arrays» и правильное решение можно найти здесь, я думаю: http://stackoverflow.com/questions/80476/how-to -concatenate-two-arrays-in-java. Если вы играете с индексами, вы можете вставить второй массив в другую позицию, а не добавлять его в конце. –

ответ

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

+0

Это размеры массивов – Jack

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(); 
Смежные вопросы