반응형
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
- 이클립스
- Java
- javascript
- map
- 인텔리제이
- IntelliJ
- html
- json
- 문자열
- 정규식
- CSS
- 자바
- Visual Studio Code
- 배열
- CMD
- string
- ArrayList
- Eclipse
- Button
- vscode
- list
- Array
- js
- date
- replace
- 자바스크립트
- table
- 이탈리아
- input
- HashMap
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.equals()로 배열 비교하기 본문
자바에서 배열을 비교할 때 흔히 == 연산자를 쓰는 경우가 많습니다.
하지만 배열에서 ==는 주소(참조) 비교이기 때문에, 내용이 같더라도 false가 나올 수 있습니다.
이럴 때 바로 Arrays.equals() 메서드를 사용하면 배열의 **내용(값)**을 비교할 수 있습니다.
1. Arrays.equals()란?
Arrays.equals()는 두 배열의 길이와 요소가 같은지 비교합니다.- 배열의 참조(주소)가 아니라, 내부 요소 값 기준으로 동등 여부를 판단합니다.
- 비교 대상: 기본형 배열(int[], double[] 등), 객체 배열(String[], Integer[] 등)
👉 true 또는 false를 반환합니다.
2. 잘못된 비교 예시 (== 연산자)
public class WrongComparison {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
System.out.println(arr1 == arr2); // 주소 비교
}
}
실행 결과
false
👉 값이 같아도, 두 배열은 서로 다른 객체이므로 ==는 false를 반환합니다.
3. 올바른 비교 – Arrays.equals()
import java.util.Arrays;
public class EqualsExample1 {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
System.out.println(Arrays.equals(arr1, arr2));
}
}
실행 결과
true
👉 배열의 길이가 같고, 모든 요소가 동일하기 때문에 true가 나옵니다.
4. 길이나 값이 다른 경우
import java.util.Arrays;
public class EqualsExample2 {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 4};
int[] arr3 = {1, 2};
System.out.println(Arrays.equals(arr1, arr2)); // 값 다름
System.out.println(Arrays.equals(arr1, arr3)); // 길이 다름
}
}
실행 결과
false
false
👉 길이가 다르거나 값이 다르면 무조건 false입니다.
5. 문자열 배열 비교
import java.util.Arrays;
public class EqualsExample3 {
public static void main(String[] args) {
String[] fruits1 = {"Apple", "Banana"};
String[] fruits2 = {"Apple", "Banana"};
String[] fruits3 = {"Banana", "Apple"};
System.out.println(Arrays.equals(fruits1, fruits2));
System.out.println(Arrays.equals(fruits1, fruits3));
}
}
실행 결과
true
false
👉 순서까지 동일해야 true입니다.
6. 2차원 배열 비교 – 주의!
Arrays.equals()는 1차원 배열만 올바르게 비교합니다.
다차원 배열에서는 내부 배열의 참조를 비교하기 때문에 주의해야 합니다.
import java.util.Arrays;
public class EqualsExample4 {
public static void main(String[] args) {
int[][] arr1 = {{1, 2}, {3, 4}};
int[][] arr2 = {{1, 2}, {3, 4}};
System.out.println(Arrays.equals(arr1, arr2));
}
}
실행 결과
false
👉 내부 배열(참조)이 다르므로 false가 나옵니다.
7. 다차원 배열 비교 – Arrays.deepEquals()
다차원 배열은 Arrays.deepEquals()를 사용해야 합니다.
import java.util.Arrays;
public class DeepEqualsExample {
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
👉 다차원 배열은 꼭 deepEquals()를 사용해야 올바른 결과가 나옵니다.
8. 정리
==→ 주소 비교 (내용이 같아도false)Arrays.equals()→ 1차원 배열의 값 비교Arrays.deepEquals()→ 다차원 배열의 값 비교
배열 내용 비교는 Arrays.equals(), 다차원 배열은 Arrays.deepEquals()!
반응형
'IT > Java' 카테고리의 다른 글
| [Java 기초] Arrays.binarySearch()로 배열 검색하기 (0) | 2025.08.29 |
|---|---|
| [Java 기초] Arrays.copyOfRange()로 배열 구간 복사하기 (1) | 2025.08.28 |
| [Java 기초] Arrays.copyOf()로 배열 복사하기 (0) | 2025.08.27 |
| [Java 기초] Arrays.sort() vs Collections.sort() 차이 정리 (0) | 2025.08.27 |
| [Java StringBuffer] reverse() – 문자열 뒤집기 (1) | 2025.08.26 |
Comments