-
Notifications
You must be signed in to change notification settings - Fork 45
sort exception
landon edited this page Sep 14, 2018
·
1 revision
// java.lang.IllegalArgumentException: Comparison method violates its
// general contract!
Integer[] array = { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 2,
1, 0, 0, 0, 2, 30, 0, 3 };
// 用这种排序方式,则抛出异常
// Arrays.sort(array, (i1, i2) -> i1 > i2 ? 1 : -1);
// 用下面这种排序方式,则无问题
// return (x < y) ? -1 : ((x == y) ? 0 : 1)
Arrays.sort(array, (i1, i2) -> i1.compareTo(i2));