알파벳 순서나 자연적 순서에 따르는 값의 클래스를 구현할때는
Comparable을 구현하는 것을 고려해봐야한다.
고려한다는 말은 추천한다는 말의 의미이지 꼭 써야한다는것은 아니다.
public interface Comparable<T>{
int compareTo(T t);
}
A < B -1
A == B 0
A > B 1
A<B 이고
B<C 인경우
A<C 이어야한다. 추이성(transitivity)
x.compareTo(y)== 0 이라고 x.equals(y) 가 참은 아니다.
int를 비교할때 대상이 음수라면
comapre로직을 고려해봐야한다.
비교 로직이 a-b > 0 이런식으로 작성할경우
int 의 max 값에서 더 큰수를 더 할 경우 즉
a = 양수 최대값이고
b = 음수면
int범위 밖의 내용에 해당하므로 음수가 반환이 된다.
Comparable은 컬렉션 객체에서 유용하게 쓰인다.
No comments:
Post a Comment