Copiar Array em Java

Rupam Yadav 12 outubro 2023
  1. Copie un array para outra usando Arrays.copyOf() em Java
  2. Copie un array para outra usando System.arraycopy() em Java
  3. Copie um array bidimensional em outro usando clone() em Java
Copiar Array em Java

Este tutorial apresenta vários métodos para copiar um array para outro array em Java. Podemos usar a abordagem manual com loops para conseguir isso, mas não gostaríamos de usar esse método por uma questão de simplicidade e não queremos reinventar a roda.

Copie un array para outra usando Arrays.copyOf() em Java

Podemos usar o método copyOf() da classe Arrays que copia o array especificado para um novo array. copyOf() leva dois argumentos; o primeiro é o array a ser copiado e o segundo é o comprimento do novo array.

Copiamos array1 para array2 no exemplo abaixo. O comprimento da nova matriz é igual a array1. Se a nova matriz tiver um tamanho maior do que a antiga, todos os índices vazios serão preenchidos com zero. Usamos um loop para imprimir os itens do novo array e seus í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]);
    }
  }
}

Resultado:

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

Copie un array para outra usando System.arraycopy() em Java

System.arraycopy() pode ser útil quando queremos criar um novo array com os subitens do array antigo, visto que copia os itens do array de uma posição especificada do array antigo para a posição do novo array.

System.arraycopy() leva pelo menos quatro argumentos, ou seja, a matriz para copiar array1, posição inicial de array1, nova matriz array2, a posição inicial de array2 e o número de itens a ser copiado para array2. A saída mostra os itens em 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]);
    }
  }
}

Resultado:

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

Copie um array bidimensional em outro usando clone() em Java

O último método para copiar um array em Java é clone() que retorna um novo array com os itens copiados do array. Neste exemplo, usamos um array bidimensional array1 que possui oito elementos. Usamos array1.clone() para copiar o array e dois loops para imprimir os novos elementos array2 do array.

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]);
      }
    }
  }
}

Resultado:

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

Artigo relacionado - Java Array