Maison  >  Article  >  Java  >  Le meilleur titre qui capture le format question-réponse et l’essence de l’article serait : Comment copier efficacement un tableau 2D en Java ?

Le meilleur titre qui capture le format question-réponse et l’essence de l’article serait : Comment copier efficacement un tableau 2D en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 18:47:02367parcourir

The best title that captures the question-answer format and the essence of the article would be:

How Do I Efficiently Copy a 2D Array in Java?

Comment créer une copie efficace d'un tableau 2D en Java

De nombreux programmeurs rencontrent des difficultés lorsqu'ils tentent de répliquer un tableau 2D en Java. Cette tâche nécessite une manipulation précise pour garantir une copie précise sans modifier le tableau d'origine.

Pour relever ce défi, pensez à tirer parti des fonctions Java natives clone() et System.arraycopy(), qui offrent des solutions efficaces et fiables.

Utilisation de clone() pour la copie de tableaux 2D

La méthode clone() crée une copie superficielle du tableau d'origine, en préservant la structure de données sous-jacente. Cette méthode fonctionne comme suit :

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

Cette approche crée un nouveau tableau 2D avec les mêmes dimensions que l'original. Chaque ligne du tableau cloné est une référence distincte à la ligne correspondante du tableau d'origine.

Utilisation de System.arraycopy() pour la copie de tableau 2D

Alternativement, System .arraycopy() offre une solution plus efficace, notamment pour les grands tableaux. Il fonctionne comme suit :

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

Cette approche consiste à créer un nouveau tableau 2D, puis à utiliser System.arraycopy() pour copier chaque ligne du tableau d'origine dans la ligne correspondante du nouveau tableau.

clone() et System.arraycopy() fournissent des solutions efficaces et intuitives pour copier des tableaux 2D en Java. Alors que clone() crée une copie superficielle, System.arraycopy() offre une efficacité améliorée et est moins sujet aux erreurs en raison de son implémentation native.

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!

Déclaration:
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