java配列のディープコピーを実現の方法

Javaでは配列は参照型のため、配列へ直接代入や引数で渡した場合、あくまで配列への参照のコピーが行われます。配列のディープコピーを実現するには以下のような方法があります。

  1. Arrays.copyOf();
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = Arrays.copyOf(originalArray, originalArray.length);
  1. System.arraycopy()
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = new int[originalArray.length];
System.arraycopy(originalArray, 0, copiedArray, 0, originalArray.length);
  1. ループを用いた代入
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = new int[originalArray.length];
for (int i = 0; i < originalArray.length; i++) {
    copiedArray[i] = originalArray[i];
}

どちらの方法でも、新しい配列オブジェクトが作成され、元の配列の要素が新しい配列にコピーされて、配列のディープコピーが実現されます。

bannerAds