Java - Объединение двух массивов с помощью System.arraycopy

В этом уроке мы узнаем, как объединить две таблицы. В следующих двух примерах представлены два различных способа конкатенации: академический метод для обучения и второй с System.arraycopy().

1) Классический метод: просмотреть оба массива

public class ConcatArrays {

public static void main(String[] args) {
String[] t1 = {"1","2","3"};
Строка[] t2 = {"4","5","6"};
String[] t12 = new String[t1.length+t2.length];

/*Конкатенация*/
for(int i = 0 ; i < t1.length; i++)
t12[i]=t1[i];
for(int i = 0 ; i < t2.length; i++)
//продолжаем копируем в t12 из индекса
//который мы остановили, который является длиной t1
t12[i+t1.length]=t2[i];

for(int i = 0 ; i < t12.length; i++)
System.out.println(t12[i]);
}
}
Output

1
2
3
4
5
6

2) С помощью метода System.arraycopy()

Этот метод эффективен, Его можно использовать для копирования элементов из исходной таблицы в конечную таблицу. Он принимает пять аргументов:
  1. Исходный массив (t1 и t2).
  2. с какой позиции исходного массива вы хотите начать(в нашем случае 0).
  3. Целевой массив (t12).
  4. с какой позиции целевого массива вы хотите начать.
    1. 0 для t1.
    2. t1.lenght для t2.
  5. Количество элементов, которые вы хотите скопировать (не конечная позиция).
public class ConcatArrays {

public static void main(String[] args) {
char[] t1 = {'a', 'b','c'};
char[] t2 = {'d','e','f'};
char[] t12 = новый char[t1.length+t2.length];

//копия первого массива
System.arraycopy(t1, 0, t12, 0, t1.length);
//копия второго массива array
System.arraycopy(t2, 0, t12, t1.length, t2.length);

for(int i = 0 ; i < t12.length; i++)
System.out.println(t12[i]);
}
}
Output

a
b
c
d
e
f
References
Документация Oracle: Класс System
TutorialsPoint:  Метод Java.lang.System.arraycopy()