Java で 2D 配列を効率的かつ安全にコピーするには?

DDD
リリース: 2024-11-01 12:42:02
オリジナル
280 人が閲覧しました

How to Efficiently and Safely Copy a 2D Array in Java?

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

質問:

2D 配列があります。編集のためにメソッド内のローカル変数にコピーする行列と呼ばれる配列。完全なコピーを作成する最も効率的でエラーのない方法は何ですか?

答え:

Java で 2D 配列をコピーするには、次の 2 つの推奨方法があります:

clone() の使用:

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

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

利点:

どちらの方法も、配列を手動でコピーするよりも高速で、エラーが発生しにくくなります。 System.arraycopy() は、ネイティブ コードで実装されているため、特に効率的です。

注:

場合によっては、配列の浅いコピーのみが必要になる場合があります。 、コピー内の変更された要素が元の配列に反映されます。浅いコピーの場合は、単純に配列を直接割り当てることができます (例: int[][] myInt = math;)。ただし、これは編集目的には推奨されません。

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

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