꾸준히 기록하자
[Java] compareTo() 본문
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