[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kak-i-kogda-proiskhodit-uvelichenie-kolichestva-korzin-v-hashmap":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},488,"kak-i-kogda-proiskhodit-uvelichenie-kolichestva-korzin-v-hashmap",12,"collections","Collections","📚","Как и когда происходит увеличение количества корзин в HashMap","Увеличение (resize \u002F rehash) происходит, когда количество элементов превышает пороговое значение `threshold = capacity * loadFactor`. По умолчанию loadFactor = 0.75, поэтому при начальной capacity = 16 рехеширование произойдет при добавлении 13-го элемента (16 * 0.75 = 12).\n\nПроцесс resize:\n\n1. Создается новый массив корзин в 2 раза больше текущего.\n2. Для каждого элемента вычисляется новый индекс корзины (hash & (newCapacity - 1)).\n3. Элементы распределяются по новым корзинам. Благодаря тому, что capacity — степень двойки, элемент попадает либо в ту же корзину, либо в корзину с индексом `oldIndex + oldCapacity`.\n4. Старый массив освобождается для GC.\n\nResize — дорогая операция O(N), т.к. требует пересмотра всех элементов. Если заранее известно количество элементов, стоит задать initialCapacity в конструкторе: `new HashMap\u003C>(expectedSize \u002F 0.75 + 1)`.\n\n> **На собеседовании:** объясните формулу threshold = capacity * loadFactor. Упомяните, что resize удваивает capacity и перераспределяет элементы. Покажите, что знаете, как избежать лишних resize через initialCapacity.","","middle",[15,16],"performance","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":35,"featuredSnippetReady":36},"Resize HashMap — threshold = capacity * loadFactor — Gymterview","Resize при size > threshold (capacity * loadFactor). Capacity удваивается, элементы перераспределяются. По умолчанию loadFactor=0.75. Задайте initialCapacity для избежания resize.","Увеличение корзин HashMap — resize — Gymterview","При size > capacity*0.75 — удвоение capacity и перераспределение элементов. O(N) операция.",[25,26,27,28,29,30,31,32,33,34],"HashMap","resize","rehash","threshold","loadFactor","capacity","0.75","initialCapacity","Java","собеседование","Когда size > threshold (capacity * loadFactor, по умолчанию 0.75). Capacity удваивается, все элементы перераспределяются по новым корзинам — O(N). Для избежания resize задайте initialCapacity: new HashMap\u003C>(expectedSize \u002F 0.75 + 1).",true]