Copier un tableau en Java

Rupam Yadav 12 octobre 2023
  1. Copier un tableau vers un autre en utilisant Arrays.copyOf() en Java
  2. Copier un tableau dans un autre en utilisant System.arraycopy() en Java
  3. Copier un tableau à deux dimensions dans un autre en utilisant clone() en Java
Copier un tableau en Java

Ce tutoriel présente plusieurs méthodes pour copier un tableau dans un autre tableau en Java. Nous pouvons utiliser l’approche manuelle avec des boucles pour y parvenir, mais nous aimerions ne pas utiliser cette méthode par souci de simplicité, et nous ne voulons pas réinventer la roue.

Copier un tableau vers un autre en utilisant Arrays.copyOf() en Java

Nous pouvons utiliser la méthode copyOf() de la classe Arrays qui copie le tableau spécifié dans un nouveau tableau. La méthode copyOf() prend deux arguments ; le premier est le tableau à copier, et le second est la longueur du nouveau tableau.

Nous copions array1 dans array2 dans l’exemple ci-dessous. La longueur du nouveau tableau est égale à celle du array1. Si le nouveau tableau a une taille supérieure à l’ancien tableau, alors chaque indice vide sera rempli avec un zéro. Nous avons utilisé une boucle pour imprimer les éléments du nouveau tableau et leurs index.

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

Production :

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

Copier un tableau dans un autre en utilisant System.arraycopy() en Java

System.arraycopy() peut être utile lorsque nous voulons créer un nouveau tableau avec les sous-éléments de l’ancien tableau, car il copie les éléments du tableau d’une position spécifiée de l’ancien tableau à la position du nouveau tableau.

System.arraycopy() prend au moins quatre arguments, qui sont, le tableau à copier array1, la position de départ du array1, le nouveau tableau array2, la position de départ du array2, et le nombre d’éléments à copier dans le array2. La sortie montre les éléments dans le 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]);
    }
  }
}

Production :

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

Copier un tableau à deux dimensions dans un autre en utilisant clone() en Java

La dernière méthode pour copier un tableau en Java est clone() qui renvoie un nouveau tableau avec les éléments copiés. Dans cet exemple, nous utilisons un tableau bidimensionnel array1 qui comporte huit éléments. Nous utilisons array1.clone() pour copier le tableau et deux boucles pour imprimer les éléments du nouveau tableau 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]);
      }
    }
  }
}

Production :

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
Auteur: 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

Article connexe - Java Array