Вопросы к Поиску с Алисой
Хеширование в HashMap работает следующим образом: когда в HashMap добавляют ключ и значение, для ключа сразу высчитывается хэш. blog.skillfactory.ru Это числовой идентификатор, который указывает элементу, в какую ячейку памяти записаться. skillbox.ru
Связь между значением элемента и его позицией в хеш-таблице задаёт хеш-функция. javarush.com Она получает входную часть данных (ключ), а на выходе выдаёт целое число — хеш-значение (или хеш-код). javarush.com Затем хеш-значение привязывает ключ к определённому индексу хеш-таблицы. javarush.com
Для основных операций: вставки, поиска и удаления, используется одна и та же хеш-функция, поэтому эти операции осуществляются довольно быстро. javarush.com
В идеальной ситуации хэш полностью индивидуален для каждого уникального объекта. blog.skillfactory.ru Но в реальности хэши могут совпадать у совершенно разных объектов. blog.skillfactory.ru Это происходит из-за несовершенства существующих алгоритмов. blog.skillfactory.ru Тогда значения обоих ключей окажутся записаны в одну «корзинку» — это и есть коллизия. blog.skillfactory.ru
Чтобы избежать коллизий, для хранения значений используется связанный список: даже если случится коллизия, новое значение просто запишется в начало той же «корзинки», не изменив старое. blog.skillfactory.ru