Ответ 1
Прежде всего JavaDocs объяснит, что вы должны реализовать этот метод:
Кроме того, этот метод может возвращать true, только если указанный объект также является компаратором, и он налагает тот же порядок, что и этот компаратор. Таким образом,
comp1.equals(comp2)
подразумевает, чтоsgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))
для каждой ссылки на объектo1
иo2
.
Но позже:
Обратите внимание, что всегда безопасно не переопределять
Object.equals(Object)
.
Как можно не переопределить equals()
, хотя это часть интерфейса? Поскольку этот метод уже реализован для каждого объекта в Java (в Object
классе).
Объявление в интерфейсе должно только подчеркнуть важность equals()
в отношении Comparator
путем добавления дополнительных объяснений JavaDoc.
Кстати, если ваш компаратор без гражданства, у вас должен быть только один экземпляр - в этом случае реализация по умолчанию equal()
просто прекрасна.