Как HashMap работает в Java

HashMap в Java работает по принципу хеширования. Это структура данных, которая позволяет сохранять объект и извлекать его за постоянное время O(1). При хешировании хеш-функции используются для связывания ключа и значения в HashMap. Объекты сохраняются путем вызова метода put(key, value) HashMap и извлекаются путем вызова метода get(key). Когда мы вызываем метод put, вызывается метод hashcode() ключевого объекта, чтобы хеш-функция карты могла найти место в корзине для хранения объекта значения, который на самом деле является индексом внутреннего массива, известного как таблица. HashMap внутренне хранит отображение в виде объекта Map.Entry, который содержит как объект ключа, так и объект значения.

Поскольку внутренний массив HashMap имеет фиксированный размер, и если вы продолжаете хранить объекты, в какой-то момент хеш-функция будет возвращать одно и то же местоположение корзины для двух разных ключей, это называется столкновением в HashMap. В этом случае связанный список формируется в этом месте корзины, и новая запись сохраняется как следующий узел.

Если мы попытаемся получить объект из этого связанного списка, нам понадобится дополнительная проверка для поиска правильного значения, это выполняется методом equals(). Поскольку каждый узел содержит запись, HashMap продолжает сравнивать ключевой объект записи с переданным ключом, используя equals(), и когда он возвращает true, Map возвращает соответствующее значение.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки