compareTo()
: 문자열의 사전순 값을 비교하여 그에 해당되는 int 값을 리턴한다.
예로 A > B 라고 가정하면,
- A = A = 0 (동일한 경우)
- A > B = 1 (좌측 값이 큰 경우)
- B > A = -1 (좌측 값이 작은 경우)
예제 소스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public void test(){
String str1 = "AA";
String str2 = "AA";
String str3 = "BB";
System.out.println(str1.compareTo(str2)); // 결과 0
System.out.println(str2.compareTo(str3)); // 결과 -1
System.out.println(str3.compareTo(str2)); // 결과 1
}
|
cs |
compare()
: Comparator 인터페이스를 구현할 때 작성해야하는 메서드이다.
실제로 구현할 때 compare()에 2개의 인자를 넘겨 내부에 구현에 따라 int 결과 값을 리턴한다.
예를 들면 아래와 같이 구현하여 사용할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@Override
public int compare(인자1, 인자2){
if(인자1 > 인자2){
return 1;
}else if(인자1 < 인자2){
return -1;
}else{
return 0;
}
}
|
cs |
특징
유사점
- 둘 다 두 객체를 비교하는 맞춤 방식이다.
- 둘 다 두 객체 간의 관계를 설명하는 int 를 반환한다.
차이점
- compare() 메서드는 Comparator 인터페이스를 구현할 때 구현해야하는 메서드다.
- 메소드에 두 개의 객체를 전달할 수 있으며, 관계를 설명하는 int 를 반환한다.
출처
https://code.i-harness.com/ko-kr/q/6697f
https://blog.naver.com/PostView.nhn
'[개발] Programming > Java' 카테고리의 다른 글
자바 Cannot invoke compareTo(int) on the primitive type int (0) | 2019.07.11 |
---|---|
자바 BigDecimal to int, 값 비교하는 방법 (0) | 2019.06.12 |
GC overhead limit exceeded, String 대신 StringBuilder 사용 등 해결 방법 (0) | 2018.11.09 |
자바, 클라이언트 정보 조회 (IP, 에이전트, 브라우저, OS 정보) (0) | 2018.11.09 |
자바 Exception:Broken pipe 오류 해결 방법 (0) | 2018.11.09 |
댓글