Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Arrays.deepToString()으로 배열의 깊은 내용을 문자열로 변환하는 방법

자바에서 배열의 깊은 내용, 즉 중첩된 배열의 요소까지 모두 포함한 문자열 표현을 얻으려면 Arrays.deepToString() 메서드를 사용하면 됩니다. 일반적인 Arrays.toString()은 1차원 배열만 문자열로 변환하지만, deepToString()은 다차원 배열이나 객체 배열처럼 중첩된 구조도 재귀적으로 탐색하여 사람이 읽기 쉬운 형태로 출력해 줍니다.

예제 1: Object 배열에 deepToString() 적용하기

다음 예제는 문자열 요소를 담은 Object 배열을 생성하고, 각 요소를 출력한 뒤 deepToString()으로 전체 배열을 문자열로 변환합니다.

import java.util.Arrays;
public class Demo {
    public static void main(String[] args) {
        Object[] ob = {"One", "Two", "Three", "Four"};
        System.out.println("배열 요소...");
        for (Object value : ob) {
            System.out.println("Value = " + value);
        }
        System.out.println("배열의 문자열 표현:");
        System.out.println(Arrays.deepToString(ob));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

배열 요소...
Value = One
Value = Two
Value = Three
Value = Four
배열의 문자열 표현:
[One, Two, Three, Four]

예제 2: 2차원 int 배열에 deepToString() 적용하기

deepToString()의 진가는 다차원 배열에서 드러납니다. 아래 예제는 3x3 크기의 2차원 int 배열에 값을 저장한 후, 중첩 구조 그대로 문자열로 출력합니다.

import java.util.Arrays;
public class Demo {
    public static void main(String[] args) {
        int[][] arr = new int[3][3];
        arr[0][0] = 10;
        arr[0][1] = 20;
        arr[0][2] = 30;
        arr[1][0] = 40;
        arr[1][1] = 50;
        arr[1][2] = 75;
        arr[2][0] = 100;
        arr[2][1] = 150;
        arr[2][2] = 200;
        System.out.println(Arrays.deepToString(arr));
    }
}

실행 결과

각 행이 대괄호로 묶인 형태로, 중첩 배열의 구조가 그대로 반영되어 출력됩니다.

[[10, 20, 30], [40, 50, 75], [100, 150, 200]]

정리

1차원 배열이라면 Arrays.toString()으로 충분하지만, 배열 안에 배열이 중첩된 경우에는 toString()이 요소의 참조값(예: [[I@1b6d3586)만 출력하므로 실제 내용을 확인할 수 없습니다. 이럴 때 Arrays.deepToString()을 사용하면 중첩된 모든 차원의 값을 한눈에 파악할 수 있어 디버깅과 로그 출력에 매우 유용합니다.