Maison > Java > javaDidacticiel > le corps du texte

Comment créer une copie fidèle d'un tableau 2D en Java ?

Patricia Arquette
Libérer: 2024-10-31 01:36:02
original
294 Les gens l'ont consulté

How to Create a True Copy of a 2D Array in Java?

Copier des tableaux 2D en Java

La copie de tableaux bidimensionnels (2D) en Java peut être essentielle pour maintenir la persistance ou travailler avec des copies qui peut être modifié sans affecter le tableau d'origine.

Le problème rencontré dans le code Java donné vient du fait que old = current et current = old attribuent des références au même tableau 2D au lieu de créer des copies indépendantes. Par conséquent, toutes les modifications apportées au courant sont également reflétées dans l'ancien.

Pour créer une copie fidèle d'un tableau 2D, il est nécessaire de créer un nouveau tableau et d'y copier chaque élément. Ceci peut être réalisé en utilisant des approches basées sur des boucles ou en tirant parti de l'API streams introduite dans Java 8.

Méthode API Streams :

<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>
Copier après la connexion

Dans cet exemple, mappez (int[]::clone) crée une nouvelle copie de chaque ligne du tableau matriciel. La méthode toArray(int[][]::new) crée ensuite un nouveau tableau 2D avec les lignes copiées.

Méthode basée sur une boucle :

<code class="java">int[][] copy = new int[current.length][current[0].length];
for (int i = 0; i < current.length; i++) {
  for (int j = 0; j < current[i].length; j++) {
    copy[i][j] = current[i][j];
  }
}</code>
Copier après la connexion

Dans cette approche, un nouveau tableau 2D (copie) avec les mêmes dimensions que le courant est créé. Ensuite, une boucle imbriquée parcourt chaque élément dans current et copie sa valeur dans la position correspondante dans copy.

Une fois la copie effectuée, old peut être attribué au tableau copié (old = copie) tandis que current peut continuez à être mis à jour sans affecter les anciens.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!