Maison > Java > javaDidacticiel > Comment copier efficacement et en toute sécurité un tableau 2D en Java ?

Comment copier efficacement et en toute sécurité un tableau 2D en Java ?

DDD
Libérer: 2024-11-01 12:42:02
original
360 Les gens l'ont consulté

How to Efficiently and Safely Copy a 2D Array in Java?

Comment copier un tableau 2D en Java

Question :

Vous avez un tableau 2D tableau appelé matrice que vous souhaitez copier dans une variable locale dans une méthode d'édition. Quelle est la manière la plus efficace et la plus fiable de créer une copie complète ?

Réponse :

Il existe deux méthodes recommandées pour copier un tableau 2D en Java :

Utilisation de clone() :

La méthode clone() crée un nouveau tableau avec la même taille et le même contenu que l'original. Pour les tableaux 2D, vous devez cloner chaque ligne individuelle :

<code class="java">int[][] myInt = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++)
    myInt[i] = matrix[i].clone();</code>
Copier après la connexion

À l'aide de System.arraycopy() :

La méthode System.arraycopy() peut également être utilisé pour copier un tableau 2D. Cela nécessite de créer un nouveau tableau et de copier manuellement chaque élément :

<code class="java">int[][] myInt = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++) {
  int[] aMatrix = matrix[i];
  int aLength = aMatrix.length;
  myInt[i] = new int[aLength];
  System.arraycopy(aMatrix, 0, myInt[i], 0, aLength);
}</code>
Copier après la connexion

Avantages :

Les deux méthodes sont plus rapides et moins sujettes aux erreurs que la copie manuelle du tableau. System.arraycopy() est particulièrement efficace car il est implémenté en code natif.

Remarque :

Dans certains cas, vous n'aurez peut-être besoin que d'une copie superficielle du tableau , où les éléments modifiés dans la copie sont reflétés dans le tableau d'origine. Pour une copie superficielle, vous pouvez simplement attribuer le tableau directement, par exemple, int[][] myInt = Matrix;. Cependant, cela n'est pas recommandé à des fins d'édition.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal