[Java] Compare 함수 사용법


Development note/Java  2019. 7. 4. 21:00

안녕하세요. 명월입니다.


이 글은 자바에서 Compare 함수의 결과에 대한 글입니다.


이전에 제가 C#으로 Compare함수의 결과에 대해 조사한 적이 있었습니다. 그걸 한번 조사한 후로 제가 머리속에 Compare 값이 딱 머리속에 박혀서 최근에 꽤 유용하게 사용하고 있습니다.

그래서 내친 김에 Java도 조사해 놔서 유용하게 사용해 볼까합니다.

링크 - [C#] Compare 함수의 결과


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

public class CompareExample {
  public static void main(String... args) {
    //결과는 -1
    System.out.println(Integer.compare(1, 2));
    //결과는 0
    System.out.println(Integer.compare(2, 2));
    //결과는 1
    System.out.println(Integer.compare(3, 2));
  }
}

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

import java.util.Calendar;
import java.util.Date;

public class CompareExample {
  public static void main(String... args) {
    Date date = getDate(2019, 7, 3);
    //결과는 -1
    System.out.println(date.compareTo(getDate(2019, 7, 4)));
    //결과는 0
    System.out.println(date.compareTo(getDate(2019, 7, 3)));
    //결과는 1
    System.out.println(date.compareTo(getDate(2019, 7, 2)));
  }

  private static Date getDate(int year, int month, int day) {
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(0);
    cal.set(year, month, day);
    return cal.getTime();
  }
}

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


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


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


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.