Java基础(一):Java8的Collections.sort()

        Collections.sort(returnList, new Comparator() {

			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,感觉写的很详细,就不赘述原理了

https://www.cnblogs.com/warehouse/p/9342279.html

你可能感兴趣的:(BUG)