ホームページ  >  記事  >  Java  >  Java で 2D 配列を効果的にコピーする方法: `clone()` と `System.arraycopy()` の比較

Java で 2D 配列を効果的にコピーする方法: `clone()` と `System.arraycopy()` の比較

DDD
DDDオリジナル
2024-10-28 21:23:02114ブラウズ

How to Effectively Copy a 2D Array in Java: `clone()` vs. `System.arraycopy()`

Java で 2D 配列をコピーする方法

Java で 2D 配列をコピーするのは難しい作業になる場合があります。これを行う 1 つの方法は、ループを使用して、元の配列から新しい配列に各要素を手動でコピーすることです。ただし、これは面倒でエラーが発生しやすい可能性があります。

2D 配列をコピーするより良い方法は、 clone() メソッドまたは System.arraycopy() を使用することです。

使用clone

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>

System.arraycopy() の使用

System.arraycopy() メソッドは別のメソッドです。配列をコピーする方法。次のパラメータを取ります:

  • ソース配列
  • ソース配列の開始インデックス
  • 宛先配列
  • の開始インデックスコピー先の配列
  • コピーする要素の数

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>

clone() メソッドと System.arraycopy() はどちらも 2D 配列をコピーする効率的な方法です。ただし、一般に System.arraycopy() の方が高速で、間違いが起こりにくいです。

以上がJava で 2D 配列を効果的にコピーする方法: `clone()` と `System.arraycopy()` の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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