Объедините два целочисленных массива [ duplicate]

бойкий, библиотека общей системы по системам Linux и Unix (но также и поддерживаемый в Windows и Mac OS X), определяет несколько атомарных операций , включая g_atomic_int_compare_and_exchange и g_atomic_pointer_compare_and_exchange.

27
задан jzd 15 January 2011 в 00:30
поделиться

3 ответа

Да, но это не так просто. Создайте третий массив размером с два объединенных массива, переберите каждый исходный массив и переместите элементы поверх. Также загляните в System.arraycopy().

1
ответ дан 28 November 2019 в 04:16
поделиться
int [] newArray = new int[old1.length+old2.length];
System.arraycopy( old1, 0, newArray, 0, old1.length);
System.arraycopy( old2, 0, newArray, old1.length, old2.length );

Не используйте поэлементное копирование, оно очень медленное по сравнению с System.arraycopy()

3
ответ дан 28 November 2019 в 04:16
поделиться

ПРИМЕЧАНИЕ: не проверял

int[] concatArray(int[] a, int[] b) {
  int[] c = new int[a.length + b.length];
  int i = 0;
  for (int x : a) { c[i] = x; i ++; }
  for (int x : b) { c[i] = x; i ++; }
  return c;
}
1
ответ дан 28 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: