Java/채우기

[Java] Comparable과 Comparator

bak_ssso 2021. 7. 1. 00:08

백준 문제를 풀다가 모르는 부분이 생겨서 구글링을 하던 중 Comparator를 알게 되었다. 정렬 문제만 만나면 엄청 힘들어했기 때문에 이참에 둘의 개념을 확실히 알고 넘어가야겠다 싶어서 좀 더 공부했다! 알게된 내용들을 간단하게 정리해보았당ㅎ.ㅎ

 

공통점

Comparable과 Comparator는 둘 다 인터페이스이기 때문에 사용할 때 선언된 메소드를 구현해야 한다.

 

Comparable

compareTo(T o)를 구현해야 하며, 자기자신과 매개변수 객체를 비교한다.

 

Comparator

compare(T o1, T o2)를 구현해야 하며, 두 매개변수 o1, o2를 비교한다.

 

계산 결과

두 수 a와 b를 비교할 때 ( 오름차순 )

1. a < b : 음수를 리턴 -> 두 원소의 위치 교환 X

2. a = b : 0을 리턴 

3. a > b : 양수를 리턴 -> 두 원소의 위치 교환 O

 

내림차순 -> 부호 변경해서 리턴