Collections.sort(returnList, new Comparator<SortMenu>() {
public int compare(SortMenu o1, SortMenu o2) {
//原先这里没有=,执行就报错,getOrderNumber()出来的是double类型的
return o1.getOrderNumber() >= o2.getOrderNumber() ? -1 : 1;
}
});
报错信息:
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeLo(TimSort.java:777)
at java.util.TimSort.mergeAt(TimSort.java:514)
at java.util.TimSort.mergeForceCollapse(TimSort.java:457)
at java.util.TimSort.sort(TimSort.java:254)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
这里贴一片blog,感觉写的很详细,就不赘述原理了