Java で 2D 配列の真のコピーを作成するには?

Patricia Arquette
リリース: 2024-10-31 01:36:02
オリジナル
292 人が閲覧しました

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

Java での 2D 配列のコピー

Java での 2 次元 (2D) 配列のコピーは、永続性を維持したり、コピーを操作したりするために不可欠です。元の配列に影響を与えることなく変更できます。

指定された Java コードで発生した問題は、old = current と current = old が独立したコピーを作成するのではなく、同じ 2D 配列への参照を割り当てるという事実に起因しています。その結果、現在の配列に加えられた変更は古い配列にも反映されます。

2D 配列の正確なコピーを作成するには、新しい配列を作成し、そこに各要素をコピーする必要があります。これは、ループベースのアプローチを使用するか、Java 8 で導入されたストリーム API を利用することで実現できます。

ストリーム API メソッド:

<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>
ログイン後にコピー

この例では、map (int[]::clone) は、行列配列の各行の新しいコピーを作成します。次に、toArray(int[][]::new) メソッドは、コピーされた行を使用して新しい 2D 配列を作成します。

ループベースのメソッド:

<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>
ログイン後にコピー

このアプローチでは、現在と同じ次元を持つ新しい 2D 配列 (コピー) が作成されます。次に、ネストされたループが current の各要素を反復処理し、その値を copy の対応する位置にコピーします。

コピーが作成されると、old はコピーされた配列 (old = copy) に割り当てることができますが、current はその配列に割り当てることができます。古いものに影響を与えることなく更新され続けます。

以上がJava で 2D 配列の真のコピーを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!