Copia array in Java

Rupam Yadav 12 ottobre 2023
  1. Copiare un array in un altro utilizzando Arrays.copyOf() in Java
  2. Copiare un array su un altro utilizzando System.arraycopy() in Java
  3. Copiare un array bidimensionale in un altro utilizzando clone() in Java
Copia array 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
Autore: Rupam Yadav
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

Articolo correlato - Java Array