У меня есть ArrayList объектов (POJO), у которых есть Id и другое поле. Я выполнил переопределение equals()/hashcode() в поле POJO для поля Id. Когда я сравниваю два объекта, используя метод equals() класса Object, он отлично работает. Однако при добавлении этих объектов к ArrayList и реализацииСортировка ArrayList объектов с использованием Hashcode
Collections.sort(arrListOfObjects);
это дает мне ClassCastException. Я поднял глаза и обнаружил, что мне нужно реализовать компаратор. Этот компаратор также делает что-то равное/hashcode override. Если это так, то почему этот код не работает? (Я знаю, что нет компаратора, но мой вопрос в том, невозможно ли реализовать сортировку на основе хэш-кода объекта?)
Вы определенно хотите реализовать интерфейс Comparable. Метод compareTo() 'это то, что на самом деле определяет, что-то« больше чем »или« меньше »другого. метод 'equals()' может только сказать, что что-то «равно», что мало что делает для упорядочения. – gnomed