반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- ArrayList
- 이탈리아
- 자바스크립트
- input
- windows
- 테이블
- Visual Studio Code
- json
- 자바
- 정규식
- list
- 배열
- CMD
- html
- 문자열
- table
- date
- js
- Java
- Array
- 이클립스
- javascript
- Button
- IntelliJ
- CSS
- string
- Eclipse
- vscode
- Maven
- 인텔리제이
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.deepToString()으로 다차원 배열 출력하기 본문
배열을 출력할 때 흔히 Arrays.toString()
을 사용합니다.
하지만 다차원 배열을 toString()
으로 출력하면 메모리 주소값이 나오기 때문에 사람이 이해하기 힘듭니다.
이때 사용하는 메서드가 바로 Arrays.deepToString()
입니다.
1. Arrays.toString()의 한계
먼저 Arrays.toString()
으로 2차원 배열을 출력해봅시다.
import java.util.Arrays;
public class DeepToStringExample1 {
public static void main(String[] args) {
int[][] arr = {{1, 2}, {3, 4}};
System.out.println(Arrays.toString(arr));
}
}
실행 결과
[[I@5ca881b5, [I@24d46ca6]
👉 각 내부 배열의 참조값(메모리 주소)이 출력되어 사람이 읽기 힘듭니다.
2. Arrays.deepToString() 사용하기
이제 Arrays.deepToString()
을 사용해보겠습니다.
import java.util.Arrays;
public class DeepToStringExample2 {
public static void main(String[] args) {
int[][] arr = {{1, 2}, {3, 4}};
System.out.println(Arrays.deepToString(arr));
}
}
실행 결과
[[1, 2], [3, 4]]
👉 내부 배열까지 재귀적으로 탐색해 사람이 읽을 수 있는 문자열 형태로 변환됩니다.
3. 다차원 배열에서 더 큰 차이
3차원 배열에서 비교해보면 차이가 더 확실합니다.
import java.util.Arrays;
public class DeepToStringExample3 {
public static void main(String[] args) {
String[][][] arr = {
{{"A", "B"}, {"C", "D"}},
{{"E", "F"}, {"G", "H"}}
};
System.out.println("toString: " + Arrays.toString(arr));
System.out.println("deepToString: " + Arrays.deepToString(arr));
}
}
실행 결과
toString: [[[Ljava.lang.String;@5ca881b5, [[Ljava.lang.String;@24d46ca6]
deepToString: [[[A, B], [C, D]], [[E, F], [G, H]]]
👉 toString()
은 주소값만 보이지만, deepToString()
은 배열의 내용 전체를 보여줍니다.
4. null 값 포함 시
deepToString()
은 null 값도 올바르게 출력합니다.
import java.util.Arrays;
public class DeepToStringExample4 {
public static void main(String[] args) {
String[][] arr = {{"A", null}, {"C", "D"}};
System.out.println(Arrays.deepToString(arr));
}
}
실행 결과
[[A, null], [C, D]]
5. equals()와 deepEquals()의 짝꿍
Arrays.equals()
↔Arrays.toString()
→ 1차원 배열 중심Arrays.deepEquals()
↔Arrays.deepToString()
→ 다차원 배열 중심
👉 다차원 배열에서는 항상 deep
계열 메서드를 써야 합니다.
6. 정리
Arrays.toString()
→ 1차원 배열 출력용Arrays.deepToString()
→ 다차원 배열 출력에 필수- 사람이 읽을 수 있는 배열 표현을 원한다면
deepToString()
을 사용해야 함
👉 다차원 배열을 출력할 때는 toString()
대신 deepToString()
을 쓰자!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Arrays.parallelSort()로 병렬 정렬하기 (1) | 2025.09.01 |
---|---|
[Java 기초] Arrays.mismatch()로 배열의 차이점 찾기 (0) | 2025.08.31 |
[Java 기초] Arrays.deepEquals()로 다차원 배열 비교하기 (0) | 2025.08.30 |
[Java 기초] Arrays.asList()로 배열을 리스트로 바꾸기 (0) | 2025.08.30 |
[Java 기초] Arrays.setAll()로 배열 값 채우기 (0) | 2025.08.29 |
Comments