Java Language Copier des tableaux


Exemple

Java propose plusieurs méthodes pour copier un tableau.

pour la boucle

int[] a = { 4, 1, 3, 2 };
int[] b = new int[a.length]; 
for (int i = 0; i < a.length; i++) {
    b[i] = a[i];
}

Notez que l'utilisation de cette option avec un tableau Object au lieu d'un tableau primitif remplira la copie en référence au contenu d'origine plutôt qu'à sa copie.

Object.clone ()

Puisque les tableaux sont des Object en Java, vous pouvez utiliser Object.clone() .

int[] a = { 4, 1, 3, 2 };
int[] b = a.clone(); // [4, 1, 3, 2]

Notez que la méthode Object.clone pour un tableau effectue une copie superficielle , c.-à-d. Object.clone renvoie une référence à un nouveau tableau qui référence les mêmes éléments que le tableau source.


Arrays.copyOf ()

java.util.Arrays fournit un moyen simple d'effectuer la copie d'un tableau sur un autre. Voici l'utilisation de base:

int[] a = {4, 1, 3, 2};
int[] b = Arrays.copyOf(a, a.length); // [4, 1, 3, 2]

Notez que Arrays.copyOf fournit également une surcharge qui vous permet de changer le type du tableau:

Double[] doubles = { 1.0, 2.0, 3.0 };
Number[] numbers = Arrays.copyOf(doubles, doubles.length, Number[].class);

System.arraycopy ()

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) Copie un tableau du tableau source spécifié, en commençant à la position spécifiée, à la position spécifiée du tableau de destination.

Ci-dessous un exemple d'utilisation

int[] a = { 4, 1, 3, 2 };
int[] b = new int[a.length];
System.arraycopy(a, 0, b, 0, a.length); // [4, 1, 3, 2]

Arrays.copyOfRange ()

Principalement utilisé pour copier une partie d'un tableau, vous pouvez également l'utiliser pour copier un tableau entier vers un autre, comme ci-dessous:

int[] a = { 4, 1, 3, 2 };
int[] b = Arrays.copyOfRange(a, 0, a.length); // [4, 1, 3, 2]