작성
·
91
·
수정됨
0
이 부분에서 '기본 정렬 외에 다른 정렬 방법을 사용해야 하는 경우'가 잘 이해가 되지 않는데요. 예를 들어, MyUser에서 age는 int형이라서 '<' 비교 연산이 가능하지만 id는 String이라 비교 연산을 할 수 없기 때문에 Comparable이 아닌 Comparator를 사용하는 건가요?
'기본 정렬 외에 다른 정렬 방법을 사용해야 하는 경우'가 이러한 경우를 의미하는 건가요??
만약 그렇다면 SortMain2에서 AscComparator, DescComparator를 Comparable이 아닌 Comparator로 구현한 이유가 무엇인가요?
답변 1
0
안녕하세요. 도토리님, 공식 서포터즈 y2gcoder입니다.
예를 들어 A 객체 목록을 조회할 때, 대부분은 기본정렬 방법으로 조회하되, 특정 조회 로직에서는 다른 정렬 기준으로 정렬해서 조회하고 싶을 때 사용할 수 있을 것 같습니다.
예를 들어 DB가 아닌 애플리케이션 코드로 저장되어 있는 A객체 집합이 있다고 가정해보겠습니다. 기본적으로 조회할 때는 a 필드를 기준으로 정렬하고 싶으면 Comparable 를 구현할 때 a를 기준으로 정렬하면 해당 A 객체는 기본적으로 정렬 시 a 필드를 기준으로 정렬될 것입니다. 그러다 관리자 페이지든, 사용자 페이지든 b 필드를 정렬 기준으로 해당 A 객체 집합을 정렬해야 한다고 하면? 그 때는 b 필드를 정렬 기준으로 하는 Comparator를 만들어서 적용해줄 수 있을 것 같습니다 🙂
감사합니다.