개요
실수에 대해서 아래와 같이 정렬을 진행할 때 에러가 발생하면서 제목과 같은 에러 메시지가 콘솔에 떴습니다.
list.sort((o1, o2) -> {
return o1 - o2 < 0 ? -1 : 1;
});
Comparison method violates its general contract!
원인
Stackoverflow 게시글에 의하면 부동소수점 산수를 하는 도중 예외가 발생하여 에러가 발생했을 확률이 높다고 합니다.
해결 방법
Double에서 제공하는 compareTo 메서드를 사용하면 정상적으로 작동하는 것을 확인할 수 있습니다.
list.sort((o1, o2) -> {
return Double.compare(o1, o2);
});
참고
https://stackoverflow.com/questions/8327514/comparison-method-violates-its-general-contract
반응형
'[DEV] 기록' 카테고리의 다른 글
SQLite DB 사용기 (0) | 2022.07.10 |
---|---|
[Java] "No suitable driver found for jdbc:sqlite" (1) | 2022.07.10 |
[Java] 위도, 경도 간 실제 거리 구하는 방법 (0) | 2022.07.10 |
[MacOS] 원하는 쉘로 변경하는 방법 (0) | 2022.06.07 |
[Maven + Tomcat] 메이븐 빌드 후 톰캣에 war 배포하는 방법 (0) | 2022.06.02 |