C#에서는 <,=,> 순으로 True 일경우, -1 ,0 , 1의 결과가 나왔습니다.
Java에서는 어떨까요?
결과
C#과 같은 결과입니다. 날짜의 경우는 어떨까요?
결과
날짜도 역시 <, =, >의 순서로 -1, 0, 1의 값이 나옵니다.
Compare식의 값을 알아두면 소트식을 만들때 엄청 편해지더라고요... 정말 알아두면 좋은 Tip값은 것이라 정리해 봤습니다.
여기까지 Java의 Compare 함수의 결과에 대한 설명이었습니다.
compareTo()
: 문자열의 사전순 값을 비교하여 그에 해당되는 int 값을 리턴한다.
예를 들어 A > B 라고 가정하면 다음과 같다.
- A = A = 0 (동일한 경우)
- A > B = 1 (좌측 값이 큰 경우)
- B > A = -1 (좌측 값이 작은 경우)
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
}
compare() 메소드
: Comparator 인터페이스를 구현할 때 작성해야하는 메서드이다.
실제로 구현할 때 compare()에 2개의 인자를 넘겨 내부에 구현에 따라 int 결과 값을 리턴한다.
예를 들면 아래와 같이 구현하여 사용할 수 있다.
@Override
public int compare(인자1, 인자2){
if(인자1 > 인자2){
return 1;
}else if(인자1 < 인자2){
return -1;
}else{
return 0;
}
}
유사점
둘 다 두 객체를 비교하는 맞춤 방식입니다.
둘 다 두 객체 간의 관계를 설명하는 int 를 반환합니다.
차이점
compare() 메서드는 Comparator 인터페이스를 구현할 때 구현해야하는 메서드입니다.
메소드에 두 개의 객체를 전달할 수 있으며, 관계를 설명하는 int 를 반환합니다.
'■ JAVA > Study' 카테고리의 다른 글
[Java] 직렬화(Serializable) 개념 ★★ (0) | 2020.10.09 |
---|---|
[Java] 바이너리(Binary)란 무엇인가? (0) | 2020.10.09 |
[JAVA] StringBuilder와 StringBuffer의 차이 (0) | 2020.10.09 |
[JAVA] HttpUrlConnection을 이용해서 웹 페이지를 가져오기 (0) | 2020.10.09 |
[JAVA] Base64 인코딩, 디코딩하는 방법 (0) | 2020.10.08 |