기타 개발공부

다차원 배열의 복제

땅콩콩 2022. 7. 15. 00:01

자바에서 다차원 배열의 복제는 최상위 1레벨만 수행한다.

 

예를 들어 1차원배열의 복제를 생각해보면,

int[] a = {1, 2, 3};
int[] b = a.clone();

이 경우에 b는 a의 배열을 공유하는 것이 아니라 복제한다. (깊은 복사, Deep copy)

int[][] a = {{1, 2, 3, 4}, {5, 6, 7}};
int[][] b = a.clone();
// 1차원배열만 복제되어 b[0], b[1]의 주솟값만 따로가지고, 그 아래 레벨의 배열은 복제되지않고 공유된다.

하지만 2차원 배열에서는 최상위 1레벨 즉, 1차원만 복제하고

그 아래 레벨에 대해서는 그냥 공유만 한다. (얕은 복사, Shallow copy)