Algorithm
[자바] 2차원 배열 복사하기
donghune
2019. 11. 30. 17:02
[Java] Copy 2 Dimension Array
알고리즘 문제를 풀다 2차원 배열을 복사할 일이 생겨 clone 함수를 사용하여 복사를 시도하였지만 실패...
이유를 알고보니 겉의 배열만 값 복사가 되고 안의 배열은 레퍼런스가 복사가 되어 버린것..
그래서 아래와 같이 유틸 함수를 만들어 주었다.
배열을 매개변수로 받아 배열안의 배열을 clone 하여 값을 넣어준다.
private static char[][] arrayCopy(char[][] aSource) {
char[][] aDestination = new char[aSource.length][]
for (int i = 0; i < aSource.length; i++) {
aDestination[i] = aSource[i].clone();
}
return aDestination;
}
자바 8이라면 아래와 같이 Stream을 사용하여 작성이 가능하다.
private static char[][] arrayCopy_java8(char[][] aSource) {
return Arrays.stream(aSource).map(char[]::clone).toArray(char[][]::new);
}