자바의 기본 객체 함수 중 하나인 equal() 함수는 객체의 값을 비교하는 연산자이다.
== 연산자는 객체의 주소를 비교하고, equals()는 객체의 값을 비교하는 연산자이다.
보통 equals()는 문자열(String)의 값을 비교하는데 많이 사용한다.
Object의 equals() 함수는 다음과 같다.
즉, 객체의 주소값을 비교하여 반환한다.
public boolean equals(Object obj) {
return (this == obj);
}
하지만 String 객체의 equals() 함수는 다음과 같다.
문자열의 char 를 하나하나 비교하여 동일하면 true, 다르면 false 를 반환한다.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
String 의 경우 같은 문자라도 주소가 다를 수 있지만, 이렇게 equals() 함수를 오버라이드하여 재구성했기 때문에
동일한 문자열의 확인이 가능하다.
'java' 카테고리의 다른 글
[Java] JAVA9 의 특징 (0) | 2017.11.10 |
---|---|
[java] jar 파일 실행 (0) | 2017.07.27 |
[java][jsoup] HTML 파싱을 위한 jsoup 라이브러리 예제 (2) | 2016.11.09 |
[java][프록시] 네트워크 프록시 설정 (0) | 2016.11.08 |
[java][스크랩] JSON 파서 선택하기 (0) | 2016.10.06 |