La soi-disant copie d'un tableau fait référence à la copie des éléments d'un tableau dans un autre tableau
Il existe quatre façons d'implémenter la copie d'un tableau en Java : Méthode :
Méthode d'affectation originale
copyOf() méthode de la classe Arrays
# 🎜 🎜##🎜 🎜## 🎜🎜#
La méthode clone() de la classe Objectpublic static void method01(int[] arr, int[] ans) { for (int i = 0; i < arr.length; i++) { ans[i] = arr[i]; } System.out.println("复制的ans数组为 " + Arrays.toString(ans)); }
Arrays.copyOf(dataType[] srcArray,int length);
représente la longueur du nouveau tableau après la copie.
Lorsque vous utilisez cette méthode pour copier un tableau, la copie commence par défaut à partir du premier élément du tableau d'origine (la valeur d'index est 0) et la longueur du tableau cible sera length. Si la longueur est supérieure à srcArray.length, le tableau cible sera rempli avec la valeur par défaut ; si la longueur est inférieure à srcArray.length, il sera copié jusqu'à l'élément length (la valeur d'index est length-1). srcArray
表示要进行复制的数组,length
Remarque : Si le tableau cible existe déjà, il sera reconstruit.
public static void method02(int[] arr, int[] ans) { ans = Arrays.copyOf(arr, arr.length + 3); System.out.println("复制的ans数组为 " + Arrays.toString(ans)); }
Arrays.copyOfRange(dataType[] srcArray,int startIndex,int endIndex)
srcArray représente le tableau d'origine.
startIndex représente l'index de départ pour commencer la copie. Le tableau cible contiendra l'élément correspondant à l'index de départ. De plus, startIndex doit être compris entre 0 et srcArray.length. .
endIndex représente l'index de terminaison. Le tableau cible ne contiendra pas l'élément correspondant à l'index de terminaison endIndex doit être supérieur ou égal à startIndex, et peut être supérieur. que srcArray.length , s'il est supérieur à srcArray.length , le tableau cible est rempli avec les valeurs par défaut.
public static void method03(int[] arr, int[] ans) { ans = Arrays.copyOfRange(arr, 0, arr.length + 3); System.out.println("复制的ans数组为 " + Arrays.toString(ans)); }
4. Utilisez la méthode arraycopy() arraycopy() se trouve dans la classe java.lang.System et sa syntaxe est la suivante :
System.arraycopy(dataType[] srcArray,int srcIndex,int destArray,int destIndex,int length)
Lorsque vous utilisez cette méthode pour copier un tableau, length+srcIndex doit être inférieur ou égal à srcArray.length, et length+destIndex doit être inférieur ou égal à destArray.length.
Remarque : Le tableau cible doit déjà exister et ne sera pas reconstruit, ce qui équivaut à remplacer certains éléments du tableau cible.
public static void method03(int[] arr, int[] ans) { ans = Arrays.copyOfRange(arr, 0, arr.length + 3); System.out.println("复制的ans数组为 " + Arrays.toString(ans)); }
5. Utilisez la méthode clone()
clone() peut également copier le tableau. Cette méthode est une méthode de la classe Object et peut créer un objet avec un espace mémoire séparé. Étant donné que le tableau est également une classe Object, vous pouvez également utiliser la méthode clone() de l'objet tableau pour copier le tableau.
array_name.clone()
Cas de test complet
public static void method05(int[] arr, int[] ans) { ans = arr.clone(); System.out.println("复制的ans数组为 " + Arrays.toString(ans)); }
Sortie
# 🎜🎜#Le tableau ans copié par la méthode de copie d'origine est [57, 81, 68, 75, 91]Le tableau ans copié par la méthode copyOf() est [57, 81, 68, 75, 91, 0, 0, 0]copyOfRange() copie le tableau ans comme [57, 81, 68, 75, 91, 0, 0, 0]
arraycopy() méthode copie le tableau ans comme [ 57, 81, 68, 75, 91]Le tableau ans copié par la méthode clone() est [57, 81, 68, 75, 91]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!