Copia array in Java
-
Copiare un array in un altro utilizzando
Arrays.copyOf()
in Java -
Copiare un array su un altro utilizzando
System.arraycopy()
in Java -
Copiare un array bidimensionale in un altro utilizzando
clone()
in Java
Questo tutorial introduce diversi metodi per copiare un array su un altro array in Java. Possiamo usare l’approccio manuale con i loop per ottenere questo risultato, ma vorremmo non usare quel metodo per semplicità e non vogliamo reinventare la ruota.
Copiare un array in un altro utilizzando Arrays.copyOf()
in Java
Possiamo usare il metodo copyOf()
della classe Arrays
che copia l’array specificato in un nuovo array. copyOf()
accetta due argomenti; il primo è l’array da copiare e il secondo è la lunghezza del nuovo array.
Copiamo array1
in array2
nell’esempio seguente. La lunghezza del nuovo array è uguale a array1
. Se il nuovo array ha una dimensione maggiore del vecchio array, ogni indice vuoto verrà riempito con uno zero. Abbiamo utilizzato un bucle per stampare gli elementi del nuovo array e i loro indici.
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]);
}
}
}
Produzione:
array2 position 0: 2
array2 position 1: 4
array2 position 2: 6
array2 position 3: 8
array2 position 4: 10
Copiare un array su un altro utilizzando System.arraycopy()
in Java
System.arraycopy()
può essere utile quando vogliamo creare un nuovo array con i sotto-elementi del vecchio array, poiché copia gli elementi dell’array da una posizione specificata del vecchio array alla posizione del nuovo array.
System.arraycopy()
richiede almeno quattro argomenti, ovvero l’array da copiare array1
, la posizione iniziale di array1
, il nuovo array array2
, la posizione iniziale di array2
e il numero di elementi da copiare in array2
. L’output mostra gli elementi in 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]);
}
}
}
Produzione:
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
Copiare un array bidimensionale in un altro utilizzando clone()
in Java
L’ultimo metodo per copiare un array in Java è clone()
che restituisce un nuovo array con gli elementi dell’array copiati. In questo esempio, usiamo un array bidimensionale array1
che ha otto elementi. Usiamo array1.clone()
per copiare l’array e due cicli per stampare i nuovi elementi dell’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]);
}
}
}
}
Produzione:
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