- Java comparteTo 메서드를 활용한 문자, 숫자 비교 -
기준값.compareTo(비교값)
public int compareTo(Integer anotherInteger) {
return compare(this.value, anotherInteger.value);
}
public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
Integer.java 의 comparTo 메서드를 보게되면
compare 메서드를 반화하게 되는데, 이는
기준 값 == 비교값 : 0
기준 값 < 비교값 : -1
기준 값 > 비교값 : 1
을 각각 반환하게 된다.
ex) 숫자 비교 예시 코드
public class Practice {
public static void main(String[] args) {
Integer a = 1;
Integer b = 1;
Integer c = 2;
int i = a.compareTo(b);
System.out.println("i = " + i); // 0
int i1 = a.compareTo(c);
System.out.println("i1 = " + i1); // -1
int i2 = c.compareTo(a);
System.out.println("i2 = " + i2); // 1
}
}
Integer 형이 아닌 int 형으로 사용하려면
int int_a = 1;
int int_c = 2;
int compare = Integer.compare(int_a, int_c); // -1
위 코드 처럼 Integer.compare 메서드를 사용
compareTo 메서드를 활용한 정렬 (프로그래머스 가장 큰 수 이용)
public class Practice {
public static void main(String[] args) {
// 오름차순
String[] arrAsc = {"30", "4", "3", "8", "10"};
Arrays.sort(arrAsc, (e1, e2) -> (e1 + e2).compareTo(e2 + e1)); // 10, 30, 3, 4, 8
// 내림차순
String[] arrDec = {"30", "4", "3", "8", "10"};
Arrays.sort(arrDec, (e1, e2) -> (e2 + e1).compareTo(e1 + e2)); // 8, 4, 3, 30, 10
}
}
e1 = "30", e2 = "4" 일 경우, "304" 와 "430" 로 만들어 비교하여 정렬
- Just Do It -
반응형
'Java' 카테고리의 다른 글
[Java] Map 사용 (0) | 2022.03.06 |
---|