ホームページ >Java >&#&チュートリアル >質問と回答の形式と記事の本質を捉えた最適なタイトルは次のとおりです。 Java で 2D 配列を効率的にコピーするにはどうすればよいですか?

質問と回答の形式と記事の本質を捉えた最適なタイトルは次のとおりです。 Java で 2D 配列を効率的にコピーするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 18:47:02480ブラウズ

The best title that captures the question-answer format and the essence of the article would be:

How Do I Efficiently Copy a 2D Array in Java?

Java で 2D 配列の効果的なコピーを作成する方法

多くのプログラマは、Java で 2D 配列を複製しようとすると困難に遭遇します。このタスクには、元の配列を変更せずに正確にコピーするための正確な処理が必要です。

この課題に対処するには、効率的で信頼性の高いソリューションを提供するネイティブ Java 関数 clone() および System.arraycopy() の活用を検討してください。

2D 配列のコピーに clone() を使用する

clone() メソッドは、元の配列の浅いコピーを作成し、基礎となるデータ構造を保持します。このメソッドは次のように動作します。

<code class="java">int[][] myInt = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++)
    myInt[i] = matrix[i].clone();</code>

このアプローチでは、元の配列と同じ次元を持つ新しい 2D 配列が作成されます。クローン配列の各行は、元の配列の対応する行への個別の参照です。

2D 配列のコピーには System.arraycopy() を使用します

または、System .arraycopy() は、特に大規模な配列に対して、より効率的なソリューションを提供します。これは次のように動作します:

<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>

このアプローチには、新しい 2D 配列を作成し、System.arraycopy() を使用して元の配列の各行を新しい配列の対応する行にコピーすることが含まれます。

clone() と System.arraycopy() はどちらも、Java で 2D 配列をコピーするための効果的で直感的なソリューションを提供します。 clone() は浅いコピーを作成しますが、System.arraycopy() はネイティブ実装により効率が向上し、エラーが発生しにくくなります。

以上が質問と回答の形式と記事の本質を捉えた最適なタイトルは次のとおりです。 Java で 2D 配列を効率的にコピーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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