compareTo()란?

송규빈·2022년 5월 6일
0

compareTo 메서드란?

  • 두 개의 값을 비교하여 결과를 숫자(int)로 return하는 메서드.

  • 쉽게 말해 대소 비교를 해주는 메서드이다.

return되는 값은 숫자를 비교할 때와 문자열을 비교할 때가 다르다

기준값.compareTo(비교 대상)으로 쓰인다.

숫자 비교

숫자를 비교할 때는 비교적 단순한 로직으로 값이 return이 된다.

0: 같다 / 1: 크다 / -1: 작다

예시로 보나 위의 정의된 메서드나 기준값과 비교 대상이 Wrapper클래스로 되어있는 것을 볼 수 있다.

그렇다면 Primitive type인 int나 double 같은 것은 비교할 수 없을까?

물론 가능하다. 다만 방식이 다르다.

문자열 비교

문자열의 경우에는 return 되는 값이 숫자 비교처럼 단순하지만은 않다.

크게 보면 0: 같다 / 양수: 크다 / 음수: 작다 로 나뉘어진다.

세부적으로는 문자열의 길이 차이, 아스키 값 차이로 return이 된다.

먼저, 문자열의 길이 차이로 return 되는 모습을 보자면

위와 같이 "aaa"의 길이는 3이고 "a"의 길이는 1이기 때문에 각각 2와 -2가 return된다.

다음 예시는 아스키 값 차이로 return 되는 모습을 보자.

"a"의 아스키값은 97이고 "c"는 99이므로 2와 -2가 return 된다.

그렇다면 "abcd"와 "c" 같은 경우에는 어떻게 return이 될까?

문자열의 비교는 같은 위치의 문자만 비교하기 때문에 "abcd"의 첫번째 인덱스인 "a"와 "c"가 탐색 시작부터 다르기 때문에 "a와 "c"의 아스키 값 차이로 return 이 된다.

profile
🚀 상상을 좋아하는 개발자

0개의 댓글