Java で多次元配列を操作する場合、多くの場合、既存の配列のコピーを作成する必要が生じます。このような配列をコピーするための最適なアプローチを理解することは、データの整合性を維持し、落とし穴を避けるために非常に重要です。
指定されたシナリオでは、整数の 2D 配列、行列が編集のためにローカル変数 myInt にコピーされます。目的。手動によるアプローチも可能ですが、エラーが発生しやすく非効率的になる可能性があります。
代わりに、Java では 2D 配列をコピーするための 2 つの推奨手法、clone() または System.arraycopy の使用を提供しています。 ().
clone() メソッドは配列の浅いコピーを作成します。元の配列とコピーは同じ基礎となる要素を参照します。行列のような 2D 配列の場合、これには以下が含まれます。
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) myInt[i] = matrix[i].clone();</code>
このアプローチは単純ですが、要素自体ではなく参照のコピーのみを作成します。行列内の要素が変更されると、myInt 内の対応する要素も影響を受けます。
System.arraycopy() メソッドはディープ コピーを実行し、コピーします。単なる参照ではなく、要素の実際の値。 2D 配列の場合:
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) { int[] aMatrix = matrix[i]; int aLength = aMatrix.length; myInt[i] = new int[aLength]; System.arraycopy(aMatrix, 0, myInt[i], 0, aLength); }</code>
このメソッドは行ごとに新しい配列を作成するため、もう少し作業が必要ですが、myInt が独立したコピーであることが保証されます。 myInt に加えられた変更は行列には影響しません。
2D 配列を手動でコピーすることは可能ですが、効率を高めるために clone() または System.arraycopy() メソッドを使用することを強くお勧めします。 、正確さ、そして利便性。これにより、コピーされた配列 (myInt) が元の配列 (行列) から適切に分離され、意図しない副作用のリスクなしに独立した変更が可能になります。
以上がJava で 2D 配列を効率的に複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。