Junior
Как се осъществява съхранението на обекти в HashMap?
sobes.tech AI
Отговор от AI
Обектите се съхраняват под формата на двойки "ключ-стойност". HashMap използва масив от "кофи" (buckets). При добавяне на двойка:
- Изчислява се хеш-кодът на ключа чрез
hashCode(). - Използвайки хеш-кода, се определя индексът на кофата в масива.
- В тази кофа се поставя двойка
Entry(или еквивалент в по-новите версии на Java), съдържаща ключа, стойността и хеш-кода. - Ако в кофата вече има обекти, те образуват свързан списък или дърво (при голям брой колизии).
При получаване на обект по ключ:
- Изчислява се хеш-кодът на ключа.
- Определя се индексът на кофата.
- Вътре в кофата се търси обект с ключ, за който
equals()връщаtrue, и хеш-кодовете съвпадат.
Ключовете трябва да бъдат неизменяеми и да имат правилно реализирани методи hashCode() и equals().