복사

    [Java]배열의 복사(2차원 배열의 복사)

    [Java]배열의 복사(2차원 배열의 복사)

    깊은 복사 1차원 배열의 깊은 복사의 경우 위에서 소개한 메서드를 사용하면 쉽게 복사가 가능함. 하지만 2차원 배열의 경우 위의 메서드를 활용해도 깊은 복사가 되지 않음. 그 이유는 위와 같은 2차원 배열의 구조 a[x][y]에서 배열을 복사하는 메서드를 사용하게 되면 y좌표를 가리키는 주소 값만 있는 a부분만 깊은 복사가 되고 값이 있는 a[x][y]는 깊은 복사가 되지 않음. 그렇기에 2차원 배열을 복사하기 위해서는 for문을 돌리면서 값이 있는 a[x][y]를 일일이 복사해주어야 함. 이중 for문 활용 public class Array_Copy{ public static void main(String[] args) { int a[][] = {{1,2,3},{4,5,6,},{7,8,9}}; int[..

    [Java]배열의 복사(1차원 배열의 복사)

    [Java]배열의 복사(1차원 배열의 복사)

    얕은 복사 public class Array_Copy{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = a; } } = 연산자는 주소를 이어준다는 의미임. 해당 코드로 a의 배열을 b배열로 = 연산자를 활용하여 대입하면 깊은 복사가 되지 않고 얕은 복사가 됨. 그렇기에 b배열의 값을 수정하여도 a배열까지 같이 수정되어버리는 상황이 나옴. 이렇게 되면 사실상 배열을 복사하는 의미가 없음. 깊은 복사 public class Array_Copy{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = new int[a.length]; for..