inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 중급 2편

정렬2 - Comparable, Comparator

Comparable이 아닌 Comparator를 사용하는 경우

179

도토리

작성한 질문수 92

0

image.png

이 부분에서 '기본 정렬 외에 다른 정렬 방법을 사용해야 하는 경우'가 잘 이해가 되지 않는데요. 예를 들어, MyUser에서 age는 int형이라서 '<' 비교 연산이 가능하지만 id는 String이라 비교 연산을 할 수 없기 때문에 Comparable이 아닌 Comparator를 사용하는 건가요?

'기본 정렬 외에 다른 정렬 방법을 사용해야 하는 경우'가 이러한 경우를 의미하는 건가요??

만약 그렇다면 SortMain2에서 AscComparator, DescComparator를 Comparable이 아닌 Comparator로 구현한 이유가 무엇인가요?

java 객체지향 코딩-테스트 알고리즘

답변 1

0

y2gcoder

안녕하세요. 도토리님, 공식 서포터즈 y2gcoder입니다.

예를 들어 A 객체 목록을 조회할 때, 대부분은 기본정렬 방법으로 조회하되, 특정 조회 로직에서는 다른 정렬 기준으로 정렬해서 조회하고 싶을 때 사용할 수 있을 것 같습니다.

예를 들어 DB가 아닌 애플리케이션 코드로 저장되어 있는 A객체 집합이 있다고 가정해보겠습니다. 기본적으로 조회할 때는 a 필드를 기준으로 정렬하고 싶으면 Comparable 를 구현할 때 a를 기준으로 정렬하면 해당 A 객체는 기본적으로 정렬 시 a 필드를 기준으로 정렬될 것입니다. 그러다 관리자 페이지든, 사용자 페이지든 b 필드를 정렬 기준으로 해당 A 객체 집합을 정렬해야 한다고 하면? 그 때는 b 필드를 정렬 기준으로 하는 Comparator를 만들어서 적용해줄 수 있을 것 같습니다 🙂

감사합니다.

제네릭 타입 매개변수 제한과 관련한 문의입니다.

0

80

3

강의가 좀 버겁다 느껴질 때 학습방법 문의

1

135

4

제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T

0

63

1

new T()가 안 되는 니유

0

102

1

안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.

0

98

2

자바 로드맵 선택 질문

0

111

2

실전 자바 중급 - 2편 후 추천 강의

0

177

2

실프로젝트에서 Java25버전 사용

0

121

1

Arrays.sort

0

68

1

블로그 작성 시, 저작권 문제에 대하여

0

166

1

중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.

0

94

3

pop()과 poll()의 차이

0

94

1

특정 index의 노드 조회하기 질문

0

66

2

List.of() 비어있는 불변 리스트 생성

0

81

2

문제2: 개 타입 반환

0

56

2

[리뷰] 중급2편까지 겨우 완강 했습니다.

0

114

2

문제와 풀이1 Ex2와 Ex3

0

65

2

노드 삭제시 노드 null값으로 초기화

0

78

2

강의영상에 대한 질문

0

57

1

타입 매개변수 제한

0

59

1

compareTo

0

68

1

직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다

0

99

3

섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨

0

70

2

퀴즈 오류 관련 문의

0

109

1