꾸준히 기록하자

[Java] compareTo() 본문

IT/Java

[Java] compareTo()

seungwonlee 2023. 9. 12. 16:48
728x90

먼저 compareTo를 설정하기 전에 저는 해당 기간 동안에만 기존 기능 외 추가적인 기능도 실행되도록 코드를 작성해야 했었습니다. 그래서 날짜를 비교하는 메서드를 찾다 보니 compareTo() 메서드를 알게 되어 글을 쓰게 되었습니다.

 

compareTo()는 Date, Integer, String Type에 두 개의 값을 비교하여 int 값으로 반환하는 메서드입니다.

Date , Integertype을 비교했을 때에는 기준값 보다 비교 값이 크면 1, 작으면 -1, 같으면 0을 반환하고 String type은 같으면 0 그 외 양수 음수 값을 반환합니다.

 

String type을 제외한 Date, Integer type에 대해 간략하게 알아보도록 하겠습니다.

 

아래 코드 블록은 Date.java에 있는 코드입니다.

public int compareTo(Date anotherDate) {
    long thisTime = getMillisOf(this);
    long anotherTime = getMillisOf(anotherDate);
    return (thisTime<anotherTime ? -1 : (thisTime==anotherTime ? 0 : 1));
}

아래 코드 블록은 Date type 예제 코드입니다.

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date now = new Date();
String dt = fmt.format(now); // 2023-09-12

Date dt1 = fmt.parse("2023-09-11");
Date dt2 = fmt.parse("2023-09-12");
Date dt3 = fmt.parse("2023-09-13");

// 기준값.compareTo(비교값)
System.out.println(dt1.compareTo(fmt.parse(dt))); // -1
System.out.println(dt2.compareTo(fmt.parse(dt))); // 0
System.out.println(dt3.compareTo(fmt.parse(dt))); // 1

아래 코드 블록은 Integer.java에 있는 코드입니다. (Integer 형)

public int compareTo(Integer anotherInteger) {
    return compare(this.value, anotherInteger.value);
}

아래 코드 블록은 Integer type 예제 코드입니다.

Integer i = 2; // 비교값

Integer a = 1;
Integer b = 2;
Integer c = 3;

// 기준값.compareTo(비교값)
System.out.println(a.compareTo(i)); // -1
System.out.println(b.compareTo(i)); // 0
System.out.println(c.compareTo(i)); // 1

아래 코드 블록은 Integer.java에 있는 코드입니다. (int 형)

public static int compare(int x, int y) {
    return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

아래 코드 블록은 int type 예제 코드입니다.

int w = 2;
int x = 1;
int y = 2;
int z = 3;

System.out.println(Integer.compare(x, w)); // -1
System.out.println(Integer.compare(y, w)); // 0
System.out.println(Integer.compare(z, w)); // 1

int 형으로 사용할 땐 위 코드 블록 와 같이 사용하시면 됩니다.

 

끝.

반응형

'IT > Java' 카테고리의 다른 글

[Java] java.util.Arrays copyOf, copyOfRange Method  (0) 2024.05.30
[Java] Optional Class  (0) 2023.12.14
[Java] Remove HTML tags  (0) 2023.04.13
[Java] Regular expression  (0) 2023.03.10
[Java] Call by Value & Reference  (0) 2023.01.15
Comments