ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바] 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

    댓글

Designed by Tistory.