Alibaba Java 개발 매뉴얼——비교기
PHPz
PHPz 2017-05-27 17:40:39
0
3
980

위 사진은 "Alibaba Java Development Manual v1.2.0"의 설명입니다. 여기에 평등 상황이 처리되지 않는다고 말하는 반대 예가 있지만 제 생각에는 다음과 같습니다.

으아악

반대 아닌가요

으아악

저는 주로 이렇게 사용합니다. 이 곳의 기술을 설명해 주시겠어요? 이유는 무엇입니까?

PHPz
PHPz

学习是最好的投资!

모든 응답(3)
给我你的怀抱

더 자세히 이해한 결과 문제의 근본 원인은 JDK7의 정렬 구현이 TimSort로 변경되었다는 것입니다. 자세한 내용은 이 문서를 참조하세요.
http://blog.2baxb.me/archives...

처음 답변을 드렸을 땐 작성자님의 질문 의도를 잘 이해하지 못해 조금 성급하게 답변드린 점 사과드립니다.
이전 답변 내용은 오프라인으로 나누어져 있습니다. 답변 댓글에 이전 답변에 대한 @wanghaa님의 논의가 있어서 그대로 유지됩니다. 문제를 알려주셔서 감사합니다.


으아아아

위 코드는 -1을 출력합니다. 비교된 두 값이 동일하면 0을 반환해야 합니다. -1을 반환하는 것은 확실히 잘못된 것이므로 동일한 상황은 별도로 처리해야 합니다.

黄舟

0과 같을 때 판단해야 함

世界只因有你

@gemoji의 토론 후 마침내 이해했습니다.
Effective Java에서 말한 것과 마찬가지로 Comparator는 Equals를 구현하는 데 필수가 아닙니다.
JDK7 이후 버전에서는 TimSort가 정렬에 사용됩니다. . 알고리즘, 결과적으로 비교기는 다음과 동일하게 구현되어야 합니다.



<<Effective Java Chinese Version>> 사실, 반례는 실제로 전이성
과 대칭성

을 파괴하는 강력한 제안입니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿