Copiar dos arrays en uno con Java

06/Oct/2007 Java , , , 5 Comentarios

En este caso lo que vamos a hacer es a partir de dos arrays, copiar el contenido de ambos dentro de un tercer array. Todo ello utilizando el lenguaje Java.

Lo primero será definir los dos arrays de origen:

  1. int a1[] = {1,2,3,4,5};
  2. int a2[] = {6,7,8,9,10};

Y posteriormente el array destino. Hay que tener en cuenta que el tamaño del array destino tiene que ser lo suficientemente grande como para albergar el contenido de los dos arrays origen.

Para ello le damos como tamaño la suma de los dos arrays de origen:

  1. int a[] = new int[a1.length+a2.length];

En la copia de arrays nos apoyaremos en el método Java .arrayCopy, el cual ya usamos en "Copiar arrays en Java".

Los parámetros que recibe el método Java .arrayCopy son:

  • Array origen
  • Posición inicial del array origen
  • Array destino
  • Posición incial en el array de destino
  • Numero de elementos a copiar del array origen al array destino

El siguiente paso será copiar el primer array en el array destino:

System.arraycopy(a1, 0, a, 0, a1.length)

Vemos que del array origen copiamos desde la posición 0, al igual que el array destino. El número de elementos a copiar es igual al tamaño del array de origen.

El tercer paso será copiar array en el array destino. Hay que tener cuidado, ya que en el array destino ya tenemos cargado el primer array.

System.arraycopy(a2, 0, a, a1.length, a2.length);

Lo que vemos es que del array de origen se copia desde el primer elemento, el cero. En el caso del array destino nos tendremos que posicionar en el elemento siguiente al último elemento del primer array. Esto nos lo da el tamaño del primer array. Es por ello que utilizamos a1.lenght. El número de elementos sigue siendo los elementos del segundo array.

Vídeos sobre Java


5 comentarios en “Copiar dos arrays en uno con Java”

Víctor Cuervo

Víctor Cuervo

@Jesus, me alegro que te haya servido. 😀

Víctor Cuervo

Jesus

Gracias me ha servido de mucho.

Víctor Cuervo

Jorge

Felicidades por el sitio , es de gran utilidad para los que empezamos a introducirnos en este mundillo de la programación , solo tengo una duda… e intentado hacer el siguiente programa “de una colección de números (enteros )de un Array , copiar los menores a 50 en un nuevo Array , posteriormente los mayores a 50 en otro Array , mostrando en consola los 2 nuevos Arrays”… ojala me puedas orientar.

Víctor Cuervo

lineadecodigo

@lethal,

Gracias por el comentario. ¿Qué tipo de artículos orientados a objetos te gustarían?

Puedes comentarlo aquí o en nuestro foro en Facebook.

Víctor Cuervo

lethal

estan bien estos ejmplos ojala temgan mas pronto pero de orientados a objetos

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*