Published 2022. 4. 20. 16:14

​- 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" 로 만들어 비교하여 정렬

 

https://wana.tistory.com/40

 

[Java] 가장 큰 수

​- 프로그래머스 / 정렬 / 가장 큰 수 - ​ # 문제설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6

wana.tistory.com

 

 

 

 

 

- Just Do It -

 

반응형

'Java' 카테고리의 다른 글

[Java] Map 사용  (0) 2022.03.06
복사했습니다!