카테고리 없음
래퍼(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의 뒤로 가게 된다. 즉, 이는 내림차순을 의미한다.
반대의 경우, 오름차순이 될 것이다.