Copiar Array em Java
-
Copie un array para outra usando
Arrays.copyOf()
em Java -
Copie un array para outra usando
System.arraycopy()
em Java -
Copie um array bidimensional em outro usando
clone()
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn