«Uniendo» arrays en Java: 5 formas probadas (con código)
¡Hola, colega! Si estás leyendo este texto, significa que te has encontrado con una tarea que, tarde o temprano, se presenta ante todo desarrollador Java — ¿cómo combinar dos arrays en Java? Parecería, ¿qué podría ser más simple? Tomar y sumar. Pero no es tan fácil. En Java no hay un operador nativo para la concatenación de arrays (como en Python o JavaScript). Y aquí comienza lo interesante.
En Stack Overflow, la pregunta «How can I concatenate two arrays in Java?» ha acumulado cientos de miles de visitas. Esto significa que incluso los chicos experimentados a veces se pierden al elegir. En este tutorial te mostraré 5 formas funcionales — desde el «anticuado» copiado manual hasta el moderno Stream API. Conocerás los pros y los contras de cada enfoque y podrás elegir el que mejor se adapte a tu tarea.
¡Vamos allá!
¿Por qué en Java no hay una forma simple de combinar arrays?
Un array en Java es un objeto de longitud fija. No puedes simplemente «agregar» un array al final de otro. Necesitas crear un nuevo array y copiar los elementos en él. Pero no te preocupes — te mostraré cómo hacerlo de manera elegante y sin dolor.
Forma 1: Copiado manual (para quienes les gusta controlarlo todo)
El método más obvio y claro. Creamos un nuevo array, cuya longitud es igual a la suma de las longitudes de los dos originales, y lo llenamos en un bucle.
public class ArrayConcatManual { public static void main(String[] args) { int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6};
int[] result = new int[array1.length + array2.length];
// Copiamos el primer array for (int i = 0; i < array1.length; i++) { result[i] = array1[i]; }
// Copiamos el segundo array for (int i = 0; i < array2.length; i++) { result[array1.length + i] = array2[i]; }
// Mostramos el resultado for (int num : result) { System.out.print(num + " "); } // Salida: 1 2 3 4 5 6 }}Pros: control total, no requiere bibliotecas externas, fácil de leer.
Contras: verboso, fácil equivocarse en los índices (especialmente si hay más de dos arrays).
Consejo: Usa esta forma si quieres entender cómo funciona todo «bajo el capó», o si estás escribiendo código con fines educativos.
Forma 2: System.arraycopy() — la herramienta estándar
En Java existe el método incorporado System.arraycopy(). Funciona más rápido que el bucle manual porque utiliza código nativo (native method). Esta es la forma recomendada para producción.
import java.util.Arrays;
public class ArrayConcatSystem { public static void main(String[] args) { String[] fruits1 = {"apple", "banana"}; String[] fruits2 = {"cherry", "date"};
String[] result = new String[fruits1.length + fruits2.length];
System.arraycopy(fruits1, 0, result, 0, fruits1.length); System.arraycopy(fruits2, 0, result, fruits1.length, fruits2.length);
System.out.println(Arrays.toString(result)); // Salida: [apple, banana, cherry, date] }}¿Cómo funciona?
- El primer argumento es el array de origen.
- El segundo es la posición inicial en el array de origen (generalmente 0).
- El tercero es el array de destino.
- El cuarto es la posición inicial en el array de destino.
- El quinto es la cantidad de elementos a copiar.
Pros: rápido, compacto, biblioteca estándar.
Contras: hay que vigilar los índices, puede lanzar ArrayIndexOutOfBoundsException.
Forma 3: ArrayList y colecciones — flexibilidad y comodidad
Si no solo necesitas combinar arrays, sino también trabajar con ellos después (agregar, eliminar