English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java полная коллекция примеров
В этом примере вы узнаете, как в Java соединять два массива с использованием arraycopy и без использования arraycopy.
import java.util.Arrays; public class Concat { public static void main(String[] args) { int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6}; int aLen = array1.length; int bLen = array2.length; int[] result = new int[aLen + bLen]; System.arraycopy(array1, 0, result, 0, aLen); System.arraycopy(array2, 0, result, aLen, bLen); System.out.println(Arrays.toString(result)); } }
При запуске программы выводится:
[1, 2, 3, 4, 5, 6]
В данном примере у нас есть два массива из int array1 и array2.
Чтобы объединить (соединить) два массива, мы храним их длины в aLen и bLen. Затем мы создаем новый массив из int длиной aLen + bLen.
Теперь, чтобы объединить их вместе, мы используем функцию arraycopy() для копирования каждого элемента из обоих массивов в результат.
Функция arraycopy(array1, 0, result, 0, aLen) просто информирует программу о копировании массива array1 из индекса 0 в результат, из индекса 0 в aLen.
Таким образом, arraycopy(array2, 0, result, aLen, bLen) информирует программу о копировании массива array2 из индекса 0 в результат, из индекса aLen в bLen.
import java.util.Arrays; public class Concat { public static void main(String[] args) { int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6}; int length = array1.length + array2.length; int[] result = new int[length]; int pos = 0; for (int element : array1) { result[pos] = element; pos++; } for (int element : array2) { result[pos] = element; pos++; } System.out.println(Arrays.toString(result)); } }
При запуске программы выводится:
[1, 2, 3, 4, 5, 6]
В上面的 программе мы не используем arraycopy, а вручную копируем каждый элемент массивов array1 и array2 в result.
Мы храним общее количество элементов result, то есть array1.length + array2.length. Затем мы создаем новый массив result с новым размером.
Теперь мы используем цикл for-each, чтобы пройтись по каждому элементу array1 и хранить его в результате. После назначения мы увеличиваем position на 1, position++.
Таким образом, мы выполняем такие же действия для array2 и начинаем хранить каждый элемент result после positions array1.