Maison > Java > javaDidacticiel > Comment effectuer une copie approfondie d'un tableau 2D en Java ?

Comment effectuer une copie approfondie d'un tableau 2D en Java ?

Barbara Streisand
Libérer: 2024-12-21 17:34:11
original
720 Les gens l'ont consulté

How to Perform a Deep Copy of a 2D Array in Java?

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;
}
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal