Junior — Middle
108
HashMap yeni açar-dəyər cütlüyü əlavə edərkən, əgər belə bir açarla element hələ mövcud deyilsə və açar üçün equals digər açarlarla uyğun gəlmirsə, necə işləyir?
AI-dan cavab
sobes.tech Süni İntellekt
При вставке новой пары ключ-значение в HashMap, если такого ключа ещё нет и метод equals для ключа не совпадает с другими, происходит следующее:
- Вычисляется хеш-код ключа с помощью метода hashCode().
- На основе хеш-кода определяется индекс (бакет) в внутреннем массиве.
- Поскольку в этом бакете нет элементов с таким ключом (equals не совпадает), новая пара просто добавляется в этот бакет.
Таким образом, вставка происходит быстро — без обхода существующих элементов с совпадающим ключом. Если бакет пуст, элемент помещается напрямую.
Примерно так:
int hash = key.hashCode();
int index = (array.length - 1) & hash;
// если в array[index] нет элементов с таким ключом
array[index] = new Node(key, value);