Метод hashCode используется для повышения производительности в Java, потому что он возвращает числовое значение фиксированной длины для любого объекта. 2 Сравнить два числа между собой гораздо быстрее, чем сравнить два объекта методом equals(), особенно если в нём используется много полей. 2
Если хэш-код объекта не совпадает с хэш-кодом другого объекта, то можно не выполнять метод equals(): сразу известно, что два объекта не совпадают. 5 Если хэш-код одинаковый, то необходимо выполнить метод equals(), чтобы определить, совпадают ли значения полей. 5
Таким образом, проверка по hashCode() идёт первой для повышения быстродействия. 2 Таким образом работают основанные на хеше структуры данных, например, HashMap. 2
Также оптимизированный метод hashCode() позволяет более сбалансированно распределять данные в распределённых системах и снижать сетевые накладные расходы. 1