C#에서는 <,=,> 순으로 True 일경우, -1 ,0 , 1의 결과가 나왔습니다.

 

Java에서는 어떨까요?

 

결과

 

 

 

 


 

 

 

 

C#과 같은 결과입니다. 날짜의 경우는 어떨까요?

 

결과

 

 

 

 


 

 

 

 

날짜도 역시 <, =, >의 순서로 -1, 0, 1의 값이 나옵니다.

 

Compare식의 값을 알아두면 소트식을 만들때 엄청 편해지더라고요... 정말 알아두면 좋은 Tip값은 것이라 정리해 봤습니다.

 

여기까지 Java의 Compare 함수의 결과에 대한 설명이었습니다.

 

 

 

 


 

 

 

 

 

https://lookingfor.tistory.com/entry/%EC%9E%90%EB%B0%94-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B9%84%EA%B5%90-%ED%95%A8%EC%88%98-compare-compareTo

 

자바 문자열 비교 함수 compare(), compareTo()

compareTo() : 문자열의 사전순 값을 비교하여 그에 해당되는 int 값을 리턴한다. 예로 A > B 라고 가정하면, - A = A = 0 (동일한 경우) - A > B = 1 (좌측 값이 큰 경우) - B > A = -1 (좌측 값이 작은 경우) 예..

lookingfor.tistory.com

 

 


 

 

 

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 를 반환합니다.