카테고리 없음

래퍼(Wrapper) 클래스의 compare 함수

진진브레드 2024. 7. 7. 23:53

 

Integer나 Double, 거기에 String 까지

Wrapper 클래스에는 기본적으로 값을 비교하는 compare 함수가 있다.

 

Integer를 대표 예로 들겠다.

Integer.compare(1, 2) 를 호출하면

-1이 반환된다.

Integer.compare(2, 1) 를 호출하면

1이 반환된다.

Integer.compare(1, 1) 를 호출하면

0이 반환된다.

 

이것을 정의해보자면,

Integer.compare(v1, v2) 에서

v1이 v2보다 크면 1을 반환하고

v1이 v2보다 작으면 -1을 반환한다.

마지막으로 v1과 v2가 같으면 0을 반환한다.

라고 할 수 있다.

 

이 함수는 정렬할 때 많이 사용하는데,

쉽게 설명하면,

compare 함수를 통해 1을 반환하면 자리를 바꾸고

0과 -1인 경우에는 자리를 유지한다.

((v1, v2) -> Double.compare(v2, v1)) 이렇게 짰다고 가정해보자,

v2가 v1보다 큰 경우,

1을 리턴하여 v1이 v2 뒤로 가게 된다. ((v1, v2) 로 들어온 것이 v2, v1으로 변경된다는 것)

이를 정의해보자면,

compare 함수가 1을 반환하는 경우,

첫 번째 매개변수(v1)가 두 번째 매개변수(v2) 뒤로 가야된다는 것을 의미한다.

 

숫자로 구체적인 예시를 들어보겠다.

((1.0, 4.0) -> Double.compare(4.0, 1.0))

이 경우, 1.0이 4.0의 뒤로 가게 된다. 즉, 이는 내림차순을 의미한다.

반대의 경우, 오름차순이 될 것이다.