Я пытаюсь отсортировать список объектов по датам (в строке). Даты представлены в виде строки, и объектам присваивается значение свойства даты «-», если с ними нет даты.
Я делаю приведенный ниже фрагмент кода, чтобы отсортировать его, однако в какой-то момент он дает мне исключение « Метод сравнения нарушает его общий контракт ». Я не могу понять, где контракт нарушается и как.
Я смотрел в другие темы, но не мог получить большую помощь.
Какие-либо данные, что я могу делать не так?
Collections.sort(listOfObjects, new Comparator<ObjectType>(){
@Override
public int compare(ObjectType objectOne, ObjectType objectTwo) {
if(sortType.equalsIgnoreCase("asc")){
if(objectOne.getSomeDate().equalsIgnoreCase("-"))
return 1;
if(objectTwo.getDeliveryQueueResponseDTO().getSomeDate().equalsIgnoreCase("-"))
return -1;
sort = objectOne.getSomeDate().compareToIgnoreCase(objectTwo.getSomeDate());
}
else
sort = objectTwo.getSomeDate().compareToIgnoreCase(objectOne.getSomeDate());
}
return sort;
}