Если вы используете реальные объекты, которые вы хотите, в качестве ключей карты и позволяете HashMap
позаботиться о деталях того, что он делает с хеш-кодом этих объектов (а ключи реализуют equals
и hashCode
в соответствии с их контракт) не будет проблем, если будет коллизия хеш-кода, кроме некоторого возможного снижения производительности из-за необходимости линейного поиска по каждой записи, хэшированной в том же сегменте.
Проблема в вашем другом вопросе, где возникла проблема столкновений, заключалась в том, что вместо использования фактического объекта, который должен был стать ключом, вы использовали хеш-код этого объекта в качестве самого ключа. Это было неправильно и могло привести к неправильному поведению .... когда вы пошли искать значение для данного ключа на карте, результатом могло быть значение, которое фактически отображается на совершенно другой ключ, который, как оказалось, имеет тот же хеш-код.
Мораль этой истории такова: используйте фактический ключ или что-то, что определенно равнозначно (например, миллисис DateTime
в данном случае) в качестве ключа, а не хеш-код ключа. HashMap
делает все необходимое с хеш-кодом для вас.