Если я использую HashMap
, где ключи являются объектами определенного класса, то hashmap все еще дает производительность O (1)?Ошибка HashMap для пользовательских объектов?
Я думаю, что он не должен давать производительность O (1), потому что хэш-ключ для определенных пользователем объектов просто возвращает адрес ключа, поэтому будет больше столкновений.
Неправильно. Не будет никаких коллизий (если только 'hashCode()' не переопределяется), поскольку реализация по умолчанию использует внутренний адрес объекта, который отличается для каждого объекта в куче Java. – gparyani
Это действительно зависит от вашего алгоритма хэширования. – Surveon
Если вы планируете вставлять свои объекты в структуру хэширования (например, 'HashMap' или' HashSet'), вы должны реально реализовать 'hashCode()' и 'equals()', контракты которых обсуждаются в ответе. – gparyani