inflearn logo
강의

Course

Instructor

Kim Young-han's Practical Java - Intermediate Part 2

Problem and Solution

compareTo

65

kmh0502117535

1 asked

0

[질문 내용]

처음 문제를 풀떄
Card 클래스에 compareTo 오버라이딩을 @Override public int compareTo(Card o) { if(number != o.getNumber()){ return this.number - o.number; } return shape.compareTo(o.getShape()); }

위 코드처럼 작성했는데 숫자가 낮은 카드 먼저 안 나올때가 있는데 잘못 작성한걸까요?

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

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 강민호님.

compareTo 메소드의 구현에 대해 질문을 주셨군요. 작성해 주신 코드를 보면 숫자와 모양을 기준으로 두 개의 필드를 비교하고 있습니다. 주어진 코드는 비교 로직이 잘못 설정된 것은 아닙니다. 그러나 compareTo 메소드의 반환 값에 따라 정렬의 방향이 결정됩니다. 다음 몇 가지를 확인해 보시면 좋을 것 같습니다:

  1. 숫자 비교: this.number - o.number는 두 숫자의 차이를 제공하며, 이 결과가 양수일 경우 this.number가 더 큰 것으로 간주됩니다. 음수라면 this.number가 더 작은 것으로 정렬됩니다.

  2. 모양 비교: 만약 숫자가 같은 경우, shape.compareTo(o.getShape())을 통해 모양을 사전순으로 비교하게 됩니다. compareTo 메소드는 주로 사전식 및 오름차순 정렬을 위해 사용하는데, 이러한 정렬 순서가 기대하는 것과 다를 수 있습니다.

만약 숫자가 낮은 카드가 우선적으로 나와야 하는데, 그렇지 않을 경우, 입출력에서 사용되는 데이터 또는 다른 외부 요인이 영향을 줄 수 있습니다. 또한, Card 클래스에서 compareTo 메소드 외에 다른 정렬 로직이 추가로 있는지 확인해 보시기 바랍니다.

관련된 질문과 유사한 사례를 다루는 게시물을 아래에 링크합니다. 이 링크를 통해 유사한 질문들을 참고해 보시고, 코드 구현에 대한 이해를 높이세요:

  • comparable 질문 - 자바 compareTo 메소드의 사용 방법과 내부 정렬 알고리즘에 대한 설명이 포함될 수 있습니다.

제가 제공한 정보가 도움이 되길 바라며, 아직 해결되지 않은 부분이 있다면 강의의 내용과 함께 비교하면서 점검해 보시길 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

71

3

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

1

119

4

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

0

53

1

new T()가 안 되는 니유

0

93

1

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

0

95

2

자바 로드맵 선택 질문

0

106

2

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

0

171

2

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

0

111

1

Arrays.sort

0

66

1

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

0

164

1

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

0

91

3

pop()과 poll()의 차이

0

93

1

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

0

64

2

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

0

78

2

문제2: 개 타입 반환

0

49

2

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

0

108

2

문제와 풀이1 Ex2와 Ex3

0

63

2

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

0

73

2

강의영상에 대한 질문

0

55

1

타입 매개변수 제한

0

57

1

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

0

93

3

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

0

65

2

퀴즈 오류 관련 문의

0

102

1

row type -> raw type 오타

1

114

2