English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Cuáles son los diferentes métodos para copiar un array a otro en Java?

Por lo general, los arrays son contenedores de múltiples variables del mismo tipo de datos. Estos son de tamaño fijo, el tamaño se determina en el momento de su creación. Cada elemento del array se ubica con un número que comienza en 0. Puede acceder a los elementos del array utilizando el nombre y la posición.-

System.out.println(myArray[3]);
//Lo que es 1457
Crear un array en Java:

En Java, se considera a los arrays como tipos de referencia, por lo que se puede crear un array de manera similar a un objeto usando la clave new y se puede llenar con índices.-

int myArray[] = new int[7];
myArray[0] = 1254;
myArray[1] = 1458;
myArray[2] = 5687;
myArray[3] = 1457;
myArray[4] = 4554;
myArray[5] = 5445;
myArray[6] = 7524;

o, puede asignar directamente valores dentro de los corchetes y separarlos con comas (,),-

int myArray = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};

Copiar arreglo

Puede copiar un array desde otro array de varias maneras-

Copiar elemento por elemento -Una manera es crear un array vacío usando la longitud del array original y luego copiar cada elemento (bucle).

Ejemplo

import java.util.Arrays;
public class CopiandoArreglo {
   public static void main(String args[]) {
      //Arreglo de origen (int)
      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
      //Longitud del arreglo
      int length1 = integerArray1.length;
      //Crear un array vacío
      int integerArray2[] = new int[length1];
      for (int i = 0; i < length1; i++) {
         integerArray2[i] = integerArray1[i];
      }
      System.out.println("Arreglo original: ",+Arrays.toString(integerArray1));
      System.out.println("Arreglo copiado: ",+Arrays.toString(integerArray2));
      //Arreglo de origen (String)
      String StringArray1[] = {"Mango", "Apple", "Orange", "Banana", "Cherries"};
      //Longitud del arreglo
      int length2 = StringArray1.length;
      //Crear un array vacío
      String StringArray2[] = new String[length2];
      for (int i = 0; i < length2; i++) {
         StringArray2[i] = StringArray1[i];
      }
      System.out.println("Arreglo original: ",+Arrays.toString(StringArray1));
      System.out.println("Arreglo copiado: ",+Arrays.toString(StringArray2));
   }
}

Resultado de salida

Arreglo original: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Arreglo copiado: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Arreglo original: [Mango, Apple, Orange, Banana, Cherries]
Arreglo copiado: [Mango, Apple, Orange, Banana, Cherries]

usar el método clone() - la clase java.lang.Objectdeclone()El método acepta un objeto como parámetro y crea y devuelve su copia.

Ejemplo

import java.util.Arrays;
public class CopiandoArreglo {
   public static void main(String args[]) {
      //Arreglo de origen (int)
      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
      //clonar el array
      int integerArray2[] = integerArray1.clone();
      System.out.println("Arreglo original: ",+Arrays.toString(integerArray1));
      System.out.println("Arreglo copiado: ",+Arrays.toString(integerArray2));
      //Arreglo de origen (String)
      String StringArray1[] = {"Mango", "Apple", "Orange", "Banana", "Cherries"};
      //clonar el array
      String StringArray2[] = StringArray1.clone();
      System.out.println("Arreglo original: ",+Arrays.toString(StringArray1));
      System.out.println("Arreglo copiado: ",+Arrays.toString(StringArray2));
   }
}

Resultado de salida

Arreglo original: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Arreglo copiado: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Arreglo original: [Mango, Apple, Orange, Banana, Cherries]
Arreglo copiado: [Mango, Apple, Orange, Banana, Cherries]

Uso del método System.arraycopy()-El método copy() de la clase System acepta dos arreglos (y otros detalles) y copia el contenido de un arreglo a otro.

Ejemplo

import java.util.Arrays;
public class CopiandoArreglo {
   public static void main(String args[]) {
      //Arreglo de origen (int)
      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
      //Longitud del arreglo
      int length1 = integerArray1.length;
      //Arreglo objetivo
      int integerArray2[] = new int[length1];
      //Copiar arreglo
      System.arraycopy(integerArray1, 0, integerArray2, 0, length1);
      System.out.println("Arreglo original: ",+Arrays.toString(integerArray1));
      System.out.println("Arreglo copiado: ",+Arrays.toString(integerArray2));
      //Arreglo de origen (String)
      String StringArray1[] = {"Mango", "Apple", "Orange", "Banana", "Cherries"};
      //Longitud del arreglo
      int length2 = StringArray1.length;
      //Arreglo objetivo
      String StringArray2[] = new String[length2];
      //Copiar arreglo
      System.arraycopy(StringArray1, 0, StringArray2, 0, length2);
      System.out.println("Arreglo original: ",+Arrays.toString(StringArray1));
      System.out.println("Arreglo copiado: ",+Arrays.toString(StringArray2));
   }
}

Resultado de salida

Arreglo original: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Arreglo copiado: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Arreglo original: [Mango, Apple, Orange, Banana, Cherries]
Arreglo copiado: [Mango, Apple, Orange, Banana, Cherries]