ホームページ  >  記事  >  Java  >  Java で 2 次元配列のディープ コピーを作成するにはどうすればよいですか?

Java で 2 次元配列のディープ コピーを作成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-01 06:18:02360ブラウズ

How to Create a Deep Copy of a Two-Dimensional Array in Java?

Java での 2 次元配列のコピー

Java での多次元配列のコピーは、ある配列を別の配列に代入するだけで参照が作成されるため、難しい場合があります。本物のコピーではなく、元のデータに復元されます。本物の複製を作成するには、新しいメモリを割り当て、要素を個別にコピーする必要があります。

あなたの場合、現在の配列を古い配列にコピーしたり、その逆にコピーしたりするための 2 つのメソッド、old() と keepold() があります。その逆も。ただし、最新のデータを更新すると、両方とも同じ基になるデータを参照するため、変更は古いデータにも反映されます。

真のコピーを作成するには、次の手順を使用できます:

  1. 新しい配列を作成します: 配列と同じ次元を持つ新しい 2 次元配列を割り当てます。オリジナル。
  2. 要素をコピーします。 元の配列を反復処理し、各要素を新しい配列内の対応する位置に割り当てます。

ストリーム API の使用 (Java) 8 )、このプロセスを簡略化できます。

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

この行では、map() メソッドを使用して各行に新しい配列を作成し、次に clone() メソッドで各行をコピーし、最後に toArray() メソッドでクローンされた行から新しい 2 次元配列を作成します。

以上がJava で 2 次元配列のディープ コピーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。