Java - Объединение двух массивов с помощью System.arraycopy
В этом уроке мы узнаем, как объединить две таблицы. В следующих двух примерах представлены два различных способа конкатенации: академический метод для обучения и второй с System.arraycopy().1) Классический метод: просмотреть оба массива
public class ConcatArrays {Output
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]);
}
}
1
2
3
4
5
6
2) С помощью метода System.arraycopy()
Этот метод эффективен, Его можно использовать для копирования элементов из исходной таблицы в конечную таблицу. Он принимает пять аргументов:
- Исходный массив (t1 и t2).
- с какой позиции исходного массива вы хотите начать(в нашем случае 0).
- Целевой массив (t12).
- с какой позиции целевого массива вы хотите начать.
- 0 для t1.
- t1.lenght для t2.
- Количество элементов, которые вы хотите скопировать (не конечная позиция).
public class ConcatArrays {Output
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]);
}
}
aReferences
b
c
d
e
f
Документация Oracle: Класс System
TutorialsPoint: Метод Java.lang.System.arraycopy()