반응형
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 |
31 |
Tags
- vscode
- Button
- input
- 자바스크립트
- html
- list
- js
- 이클립스
- Visual Studio Code
- 인텔리제이
- 테이블
- javascript
- date
- string
- 이탈리아
- 문자열
- ArrayList
- Maven
- Java
- windows
- json
- CMD
- 자바
- Array
- Eclipse
- 배열
- IntelliJ
- table
- CSS
- 정규식
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