-
java comparable과 comparator카테고리 없음 2019. 2. 18. 02:32
프로그래머스의 베스트 앨범 문제를 풀다가
시간이 지나 풀이를 보았다. 풀이 방법은 바로 떠올랐으나 1년이 지나도 바닥에 머물고 있는 코딩실력이 붙잡고있다.
풀이를 보며 이해가 안 간 것은 song 클래스를 만들고 compareTo 메소드를 통해 솔팅하는 것이었다.
호출하는 곳도 없고, compareTo로 비교하는게 아닌 솔팅하는것이 이해가 안되었고, 한참을 찾다가 참고 블로그들을 통해 대략적으로 이해하게 되었다.
이어서 작성
comare() 은 Comparator 인터페이스 구현 메소드
Comparable 인터페이스
객체들 사이의 오름차순, 내림차순 등 일반적인 순서를 결정할 사용.
compareTo() 는 comparable 인터페이스 구현 메소드이다.
나아가보자
A.compareTo(B) 에서
A < B return 음수
A == B return 0
A > B return 양수
여기서 기준 A.와 비교당할 B로 생각하면된다.
Comparator 인터페이스
일반적인 순서가 아닌 문자열 길이 등 사용자가 직접 순서의 규칙을 정하고 싶을 때 사용. 특히 부동 소수점 값을 비교할 때 관계연산자를 사용하면 compareTo()의 보편적 구현을 따르지 않기 때문에 이 인터페이스에는 compare()이 있다.
int comapre(T o1, T o2)
o1을 기준으로 리턴방식은 compareTo와 동일
예제
참고블로그
http://www.nextree.co.kr/p11101/
댓글