Как известно, ситуация, когда у разных объектов одинаковые хеш-коды называется — коллизией. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хеш-кода.
Но вот вопрос, почему она возникает? Неужели тяжко придумать "защиту" от возникновения коллизии? Кто что думает?
Хеш код в java создается методом
public int hashCode()
У integer диапазон от -2147483648 до 2147483647, т.е. округлив получаем 4 миллиарда разных целых чисел.
А теперь представим ситуацию, у вас 8-10 миллиардов объектов. Вопрос: как каждому из них дать уникальный хеш код используя диапазон в 4 миллиарда?
Ответ: никак.
При этом вы не знаете сколько объектов вашего класса могут создать пользователи.
Если ваш класс будет использоваться в Hash структурах как ключ, вы так же должны постараться обеспечить объекты такими хеш кодами, чтобы они попадали в разные корзины и получить равномерное заполнение структуры.
Как меняется крипторынок и к чему готовиться владельцам криптообменников
Моя первая реализация асинхронной работы с помощью RXJava 2
Есть приложение которое в потоке Asnytask в методе doİnBackground качает данные и парсит их в Map передает его в onPostExecute метод в котором в İntent кладется...
У меня есть обычная страница авторизации на сервере