У меня есть некоторые проблемы с методом collection.sort().«Метод сравнения нарушает общий контракт» - даже при правильной реализации компаратора
java.lang.IllegalArgumentException: метод сравнения нарушает его общий контракт!
на java.util.TimSort.mergeLo (TimSort.java:747)
на java.util.TimSort.mergeAt (TimSort.java:483)
на java.util.TimSort.mergeCollapse (TimSort.java:410)
на java.util.TimSort.sort (TimSort.java:214)
на java.util.TimSort.sort (TimSort.java:173)
на java.util.Arrays.sort (Arrays.j AVA: 659)
на java.util.Collections.sort (Collections.java:217)
это мой компаратор
public int compare(Key key1, Key key2)
{
if (key1.Score > key2.Score)
return -1;
else if(key1.Score < key2.Score)
return 1;
else
return 0;
}
Я в настоящее время JDK 1.7, я попытался с 1.6 но это не сработало. Я не могу понять, является ли проблема проблемой с методом сортировки или какой-либо другой проблемой. (Я пытаюсь отсортировать список с более чем 1000 элементами и у него нет никаких NaN).