-
[자바] 2차원 배열 복사하기Algorithm 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); }
'Algorithm' 카테고리의 다른 글
백준 - 1로 만들기 (1463) (0) 2019.12.08 백준 - 유기농 배추 (1012) (0) 2019.12.08 백준 - 적록색약 (10026) (0) 2019.12.08 백준 - 미로 탐색 (2178) (0) 2019.12.02 백준 - 보물섬 (2589) (0) 2019.11.30