English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este programa, aprenderás a conectar dos arreglos en Java usando arraycopy y sin usar 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)); } }
Al ejecutar el programa, la salida es:
[1, 2, 3, 4, 5, 6]
En el programa anterior, tenemos dos arreglos de enteros array1y array2.
Para combinar (unir) dos arreglos, almacenamos sus longitudes respectivamente en aLen y bLen. Luego, creamos un array de longitud aLen + bLen a un nuevo array de enteros resultado.
Ahora, para combinarlos, utilizamos la función arraycopy() para copiar cada elemento de ambos arreglos al resultado.
La función arraycopy(array1, 0, result, 0, aLen) simplemente informa al programa que comience desde el índice 0 para copiar array1Copiar al resultado desde el índice 0 hasta aLen.
Del mismo modo, arraycopy(array2, 0, result, aLen, bLen) informa al programa que comience desde el índice 0 para copiar array2Copiar al resultado, desde el índice aLen hasta 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)); } }
Al ejecutar el programa, la salida es:
[1, 2, 3, 4, 5, 6]
En el programa anterior, no usamos arraycopy, sino que copiamos manualmente el array array1y array2de cada elemento a result.
Guardamos el total de longitudes necesarias para result, es decir, array1.length + array2. length. Luego, creamos un nuevo array de longitud resultados.
Ahora, usamos for-Ciclo each recorre array1de cada elemento y almacenarlo en el resultado. Después de la asignación, aumentamos la posición pos1, pos ++.
Del mismo modo, para array2Ejecutar la misma operación y comenzar desde array1A partir de la posición siguiente comenzar a almacenar cada elemento de result.