Как хорошая практика, да, поскольку equals
, hashCode
и compareTo
имеют близкие значения.Их можно рассматривать как разные аспекты одного и того же.Если ваш объект используется где-то еще, не реализовав их вместе, вы можете столкнуться с непредсказуемым поведением.
Например, вы передали свой объект в стороннюю библиотеку, которая использует алгоритм двоичного поиска, он использует compareTo
.Несколько месяцев спустя новая версия библиотеки была изменена на хешированную структуру данных для повышения производительности, которая ретранслируется на equals
и hashCode
.С их точки зрения, это не нарушает изменения。
Как и в этом случае, нет, поскольку DelayQueue
не использует их.