Если метод hashCode не переопределён в классе, объекты этого класса будут сравниваться по умолчанию, используя реализации, определённые в классе Object. 1
В частности, метод hashCode будет возвращать уникальный идентификатор объекта на основе его адреса в памяти. 1 Таким образом, если два объекта типа этого класса будут иметь разные адреса в памяти, то они будут считаться неравными, даже если содержат одинаковые данные. 1
Если добавить эти объекты в коллекцию, например, в HashSet, то она может считать их разными элементами, даже если они содержат одинаковые данные, что приведёт к некорректной работе коллекции. 1
Кроме того, если метод hashCode не переопределён, то коллекции будут использовать реализацию по умолчанию в классе Object, которая выдаёт разные значения для разных объектов, даже если они равны в соответствии с методом equals(). 4