왜 (x.compareTo(y) == 0) == (x.equals(y))를 만족해야 할까?
※ 이 포스팅은 주관적 해석을 포함하고 있습니다. compareTo() 구현 명세 자바 API 문서 Comparable compareTo() 구현 명세에 다음과 같은 지침이 있다. It is strongly recommended, but not strictly required that(x.compareTo(y)==0) == (x.equals(y)). compareTo()는 객체 간의 자연적 순서(natural order)를 정하기 위해서 주로 사용되고, equals()는 객체 간의 동치성을 비교하기 위해서 사용된다. 사용목적이 달라 보이는 두 메서드 간에 왜 위와 같은 구현 지침이 있는 걸까? 결론부터 말하자면 (일부) Set이나 Map 메서드의 동치성 확인은 equals()가 아닌 compreTo() ..
Java
2020. 11. 8. 19:51