Hoy te enseñaré cómo clonar o crear una copia de un arreglo en Java. Es decir, a partir de un arreglo, crear uno nuevo (eliminando la referencia al original) con los mismos elementos y misma longitud.
En Java, como bien sabemos, los arreglos se pasan por referencia cuando los enviamos como argumentos a otras funciones. De modo que si modificamos un arreglo dentro de una función, el cambio se reflejará en el método desde donde la llamamos.
Por ello es que en este post te mostraré la forma fácil de eliminar esa referencia y crear una copia del arreglo.
Vamos al código. Para copiar un arreglo podemos invocar a System.arraycopy
. Los argumentos en orden son:
Entonces para crear una copia completa, sería:
System.arraycopy(arregloOrigen, 0, arregloDestino, 0, arregloOrigen.length);
De modo que empezamos desde 0 y copiamos la cantidad de elementos que haya en el original.
Para terminar el post veamos un ejemplo. El código Java queda así:
public static void main(String[] args) {
int[] numeros = { 10, 50, 12, 55 };
// Alojar espacio
int[] copiaDeNumeros = new int[numeros.length];
// Clonar
System.arraycopy(numeros, 0, copiaDeNumeros, 0, numeros.length);
// Imprimir para demostrar que tienen los mismos elementos
for (int i = 0; i < numeros.length; i++) {
System.out.printf("Dentro de arreglo 1 en la posición %d existe %d y en el arreglo 2 existe %d\n", i,
numeros[i], copiaDeNumeros[i]);
}
}
Estoy declarando el arreglo en la línea 2, alojando espacio para la copia en la línea 4 y haciendo la copia en la línea 6.
Si te preguntas para qué sirve clonar un array en Java, te explico un pequeño ejemplo. Cuando se quiere ordenar un arreglo, éste se modifica internamente, así que si quieres mantener una copia del original debes crear un clon y después ordenar el clon.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.