2910번 - 빈도 정렬
아래 코드와 같이 comparable을 implement하고 compareTo를 오버라이딩 이후 정렬하였습니다.
그렇지만, 정렬이 제가 원하는 방식으로 정렬이 진행되지 않아서 어쩔 수 없이 comparator를 구현하여 정렬하여서 문제를 해결하였습니다.
혹시, comparable과 comparator가 동작방식에서 차이가 있어서 제가 원하는 로직으로 정렬이 안된 것인가요?
/////////////////질문자리/////////////////// @Override public int compareTo(Info o) { if (this.freq == o.freq) { return (this.idx - o.idx); } return -(this.freq - o.freq); } //////////////////////////////////////////
무엇때문에 제가 원하는 방식으로 정렬이 안되는 것인지 알 수 있을까요?
Collections.sort는 그저 List<Integer>를 정렬할 뿐입니다. 이것만 가지고 이 리스트를 사실은 freqMap를 이용해서 정렬하고 싶다는 걸 어떻게 알 수 있을까요?
감사합니다.
댓글을 작성하려면 로그인해야 합니다.
1riberty 1년 전 1
아래 코드와 같이 comparable을 implement하고 compareTo를 오버라이딩 이후 정렬하였습니다.
그렇지만, 정렬이 제가 원하는 방식으로 정렬이 진행되지 않아서 어쩔 수 없이 comparator를 구현하여 정렬하여서 문제를 해결하였습니다.
혹시, comparable과 comparator가 동작방식에서 차이가 있어서 제가 원하는 로직으로 정렬이 안된 것인가요?
/////////////////질문자리///////////////////
@Override
public int compareTo(Info o) {
if (this.freq == o.freq) {
return (this.idx - o.idx);
}
return -(this.freq - o.freq);
}
//////////////////////////////////////////
무엇때문에 제가 원하는 방식으로 정렬이 안되는 것인지 알 수 있을까요?