Copiar Array en Java

Rupam Yadav 12 octubre 2023
  1. Copiar un Array a otro usando Arrays.copyOf() en Java
  2. Copiar un array a otro usando System.arraycopy() en Java
  3. Copiar un array bidimensional en otro usando clone() en Java
Copiar Array en Java

Este tutorial presenta varios métodos para copiar un array a otro array en Java. Podemos utilizar el enfoque manual con bucles para lograr esto, pero nos gustaría no utilizar ese método en aras de la simplicidad, y no queremos reinventar la rueda.

Copiar un Array a otro usando Arrays.copyOf() en Java

Podemos utilizar el método copyOf() de la clase Arrays que copia el array especificado a un nuevo array. El método copyOf() toma dos argumentos; el primero es el array a copiar, y el segundo es la longitud del nuevo array.

En el siguiente ejemplo copiamos el array array1 a el array array2. La longitud del nuevo array es igual a la de array1. Si el nuevo array tiene un tamaño mayor que el antiguo, entonces cada índice vacío se llenará con un cero. Usamos un bucle para imprimir los elementos del nuevo array y sus índices.

import java.util.Arrays;

public class CopyArray {
  public static void main(String[] args) {
    int[] array1 = new int[] {2, 4, 6, 8, 10};

    int[] array2 = Arrays.copyOf(array1, array1.length);

    for (int i = 0; i < array2.length; i++) {
      System.out.println("array2 position " + i + ": " + array2[i]);
    }
  }
}

Producción :

array2 position 0: 2
array2 position 1: 4
array2 position 2: 6
array2 position 3: 8
array2 position 4: 10

Copiar un array a otro usando System.arraycopy() en Java

System.arraycopy() puede ser útil cuando queremos crear un nuevo array con los subelementos del array antiguo, ya que copia los elementos del array desde una posición especificada del array antiguo a la posición del nuevo array.

System.arraycopy() toma al menos cuatro argumentos, que son, el array a copiar array1, la posición inicial de array1, el nuevo array array2, la posición inicial de array2, y el número de elementos a copiar en array2. La salida muestra los elementos en array2.

public class CopyArray {
  public static void main(String[] args) {
    String[] array1 = new String[] {"Adam", "Claire", "Dave", "Greg", "Halsey", "Jane", "Kylie"};

    String[] array2 = new String[array1.length];

    System.arraycopy(array1, 0, array2, 0, array1.length);

    for (int i = 0; i < array2.length; i++) {
      System.out.println("array2 position " + i + ": " + array2[i]);
    }
  }
}

Producción :

array2 position 0: Adam
array2 position 1: Claire
array2 position 2: Dave
array2 position 3: Greg
array2 position 4: Halsey
array2 position 5: Jane
array2 position 6: Kylie

Copiar un array bidimensional en otro usando clone() en Java

El último método para copiar un array en Java es clone() que devuelve un nuevo array con los elementos del array copiado. En este ejemplo, utilizamos un array bidimensional array1 que tiene ocho elementos. Usamos array1.clone() para copiar el array y dos bucles para imprimir los elementos del nuevo array array2.

public class CopyArray {
  public static void main(String[] args) {
    int[][] array1 = {{10, 20}, {30, 40}, {50, 60}, {70, 80}};

    int[][] array2 = array1.clone();

    for (int i = 0; i < array2.length; i++) {
      for (int j = 0; j < array2[i].length; j++) {
        System.out.println("array2 position [" + i + "][" + j + "] : " + array2[i][j]);
      }
    }
  }
}

Producción :

array2 position [0][0] : 10
array2 position [0][1] : 20
array2 position [1][0] : 30
array2 position [1][1] : 40
array2 position [2][0] : 50
array2 position [2][1] : 60
array2 position [3][0] : 70
array2 position [3][1] : 80
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java Array