Copie approfondie de tableaux 2D en Java : un guide complet
L'utilisation de .clone() sur un tableau 2D peut conduire à des copies superficielles, ce qui peut entraîner un comportement inattendu. Pour effectuer une copie approfondie qui crée une nouvelle copie indépendante du tableau d'origine, une approche plus approfondie est nécessaire.
Copie approfondie itérative avec System.arraycopy
Une approche copier en profondeur un tableau booléen 2D consiste à le parcourir et à utiliser System.arraycopy pour copier chaque ligne dans un nouveau tableau. Cela implique de créer un nouveau tableau 2D, puis de parcourir le tableau d'origine, en copiant chaque ligne élément par élément dans la ligne correspondante du nouveau tableau.
Option Java 6 : java.util.Arrays#copyOf
Si vous utilisez Java 6 ou une version ultérieure, vous pouvez simplifier ce processus en utilisant les méthodes java.util.Arrays#copyOf. Cette classe fournit un moyen pratique de copier des tableaux.
Exemple de code :
L'exemple de code suivant montre comment effectuer une copie approfondie d'un tableau booléen 2D à l'aide de l'itération approche :
public static boolean[][] deepCopy(boolean[][] original) { if (original == null) { return null; } final boolean[][] result = new boolean[original.length][]; for (int i = 0; i < original.length; i++) { result[i] = Arrays.copyOf(original[i], original[i].length); // For Java versions prior to Java 6 use the next: // System.arraycopy(original[i], 0, result[i], 0, original[i].length); } return result; }
En suivant ces étapes, vous pouvez créer efficacement des copies complètes de tableaux booléens 2D en Java, en garantissant que les modifications apportées à un tableau n'affectent pas l'autre.
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!