Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
HashMap в Java основан на принципах хеширования. Он хранит пары "ключ-значение".
Внутреннее устройство:
put
):
key.hashCode()
).hash
).хеш & (размер_массива - 1)
).Node
) помещается в этот бакет. Если бакет уже содержит элементы, новый элемент добавляется в начало связного списка или дерева.equals()
для сравнения ключей внутри бакета. Если ключ найден, значение обновляется.get
):
hashCode()
и equals()
.Организация:
load factor * capacity
), HashMap увеличивает размер внутреннего массива бакетов (обычно вдвое) и перехеширует все элементы. Это дорогая операция (O(n)).capacity
: Начальный размер массива бакетов (по умолчанию 16).load factor
: Порог загрузки (по умолчанию 0.75). Определяет, когда произойдет ресайзинHashMap в Java основан на принципах хеширования. Он хранит пары "ключ-значение".
Внутреннее устройство:
put
):
key.hashCode()
).hash
).хеш & (размер_массива - 1)
).Node
) помещается в этот бакет. Если бакет уже содержит элементы, новый элемент добавляется в начало связного списка или дерева.equals()
для сравнения ключей внутри бакета. Если ключ найден, значение обновляется.get
):
hashCode()
и equals()
.Организация:
load factor * capacity
), HashMap увеличивает размер внутреннего массива бакетов (обычно вдвое) и перехеширует все элементы. Это дорогая операция (O(n)).capacity
: Начальный размер массива бакетов (по умолчанию 16).load factor
: Порог загрузки (по умолчанию 0.75). Определяет, когда произойдет ресайзинЗарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.