반응형
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
- windows
- javascript
- vscode
- list
- table
- 배열
- ArrayList
- 테이블
- json
- Eclipse
- Button
- 자바
- 자바스크립트
- date
- Java
- Maven
- input
- string
- IntelliJ
- Visual Studio Code
- 정규식
- CMD
- 문자열
- html
- 인텔리제이
- 이탈리아
- 이클립스
- CSS
- Array
- js
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.deepEquals()로 다차원 배열 비교하기 본문
배열을 비교할 때 자주 사용하는 Arrays.equals()
는 1차원 배열에는 잘 동작하지만, 2차원 이상 다차원 배열에서는 원하는 결과를 주지 않습니다.
이럴 때 사용하는 메서드가 바로 Arrays.deepEquals()
입니다.
1. Arrays.equals()의 한계
먼저 Arrays.equals()
를 다차원 배열에 사용해보겠습니다.
import java.util.Arrays;
public class DeepEqualsExample1 {
public static void main(String[] args) {
String[][] arr1 = {{"A", "B"}, {"C", "D"}};
String[][] arr2 = {{"A", "B"}, {"C", "D"}};
System.out.println(Arrays.equals(arr1, arr2));
}
}
실행 결과
false
👉 배열 안의 내용은 같지만, equals()
는 참조(주소값)만 비교하기 때문에 false
가 나옵니다.
2. Arrays.deepEquals() 사용하기
이제 Arrays.deepEquals()
를 사용해봅시다.
import java.util.Arrays;
public class DeepEqualsExample2 {
public static void main(String[] args) {
String[][] arr1 = {{"A", "B"}, {"C", "D"}};
String[][] arr2 = {{"A", "B"}, {"C", "D"}};
System.out.println(Arrays.deepEquals(arr1, arr2));
}
}
실행 결과
true
👉 내부 요소까지 재귀적으로 비교하기 때문에, 값이 같으면 true
를 반환합니다.
3. 다차원 기본형 배열 비교
기본형 배열의 다차원 배열도 deepEquals()
로 비교할 수 있습니다.
import java.util.Arrays;
public class DeepEqualsExample3 {
public static void main(String[] args) {
int[][] arr1 = {{1, 2}, {3, 4}};
int[][] arr2 = {{1, 2}, {3, 4}};
System.out.println(Arrays.deepEquals(arr1, arr2));
}
}
실행 결과
true
👉 equals()
라면 false
였겠지만, deepEquals()
는 내부 요소를 비교하기 때문에 true
.
4. null 값이 포함된 경우
deepEquals()
는 null 값도 올바르게 처리합니다.
import java.util.Arrays;
public class DeepEqualsExample4 {
public static void main(String[] args) {
String[][] arr1 = {{"A", null}, {"C", "D"}};
String[][] arr2 = {{"A", null}, {"C", "D"}};
System.out.println(Arrays.deepEquals(arr1, arr2));
}
}
실행 결과
true
5. equals() vs deepEquals() 차이 요약
메서드 | 비교 범위 | 다차원 배열 지원 | 결과 예시 |
---|---|---|---|
Arrays.equals() |
1차원 배열의 원소만 | ❌ (참조 비교) | false |
Arrays.deepEquals() |
배열 안의 배열까지 재귀적으로 비교 | ✅ | true |
6. 정리
Arrays.equals()
→ 1차원 배열 비교용Arrays.deepEquals()
→ 다차원 배열을 값 기준으로 비교- 참조가 아닌 내용 비교가 필요할 때 꼭 사용해야 함
👉 다차원 배열 비교는 equals()
대신 deepEquals()
를 써야 값이 같은지 제대로 확인할 수 있다!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Arrays.mismatch()로 배열의 차이점 찾기 (0) | 2025.08.31 |
---|---|
[Java 기초] Arrays.deepToString()으로 다차원 배열 출력하기 (0) | 2025.08.31 |
[Java 기초] Arrays.asList()로 배열을 리스트로 바꾸기 (0) | 2025.08.30 |
[Java 기초] Arrays.setAll()로 배열 값 채우기 (0) | 2025.08.29 |
[Java 기초] Arrays.binarySearch()로 배열 검색하기 (0) | 2025.08.29 |
Comments