728x90
반응형
SMALL
2차원 배열의 깊은 복사
얕은 복사
boolean[][] real = new boolean[1][1];
boolean[][] fake = real;
fake[1][1] = true;
System.out.println(real[1][1]); // true
잘못된 깊은 복사
boolean[][] real = new boolean[1][1];
boolean[][] fake = real.clone;
fake[1][1] = true;
System.out.println(real[1][1]); // true
깊은 복사가 제대로 되지 않는다.
제대로 된 깊은 복사
boolean[][] real = new boolean[1][1];
boolean[][] fake = Arrays.stream(real).map(boolean[]::clone).toArray(boolean[][]::new);
// for(int i=0; i<fake.length; i++){
// System.arraycopy(real[i], 0, fake[i], 0, real[0].length);
// }
fake[0][0] = true;
System.out.println(real[0][0]); // false
2차원 배열의 경우 1차원 배열씩 복사해야 한다.
728x90
반응형
LIST
'Language > 자바' 카테고리의 다른 글
자바 진수변환 엄청 쉽게 하는 방법 (0) | 2024.08.23 |
---|---|
빅엔디안, 리틀엔디안이란? (0) | 2024.06.11 |
volatile 이란? (0) | 2024.06.09 |
HashMap과 Hashtable의 차이점 (0) | 2023.10.02 |
JAVA의 WatchService에서 주의할점 (0) | 2023.08.10 |