Вы можете решить эту проблему с помощью метода equals (). Обратитесь к определению FindBugs:
"Как правило, значение compareTo должно возвращать ноль в том и только в том случае, если equals возвращает true. Если это нарушается, в таких классах, как PriorityQueue, будут происходить странные и непредсказуемые ошибки."
"Настоятельно рекомендуется, но не обязательно, чтобы (x.compareTo (y) == 0) == (x.equals (y))."
Другим примером является TreeSet. Он реализует проверки на равенство, вызывая CompareTo, а реализация CompareTo, которая несовместима с equals, заставляет TreeSet нарушать контракт интерфейса Set, что может привести к сбою программы.