Comparison method violates its general contract
Published on: | Views: 92java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) ~[?:1.8.0_265]
at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) ~[?:1.8.0_265]
at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:404) ~[?:1.8.0_265]
at java.util.ComparableTimSort.sort(ComparableTimSort.java:213) ~[?:1.8.0_265]
原因是没有遵守compare约定: 1. x.compareTo(y) == y.compareTo(x) 2. x.compareTo(y)>0 && y.compareTo(z) >0 ---> x.compareTo(z)>0 3. x.compareTo(y)==0 ---> x.compareTo(z) == y.compareTo(z)