Выбор ответа Junior Коллекции изнутри обновлено
Когда HashMap расширяется
Вопрос
При какой заполненности new HashMap<>() впервые увеличит таблицу?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Когда элементов станет больше 12 (16 × 0.75), до 32 корзин. Порог resize = capacity × loadFactor, по умолчанию 16 × 0.75 = 12.
Варианты ответа
- Когда все 16 корзин таблицы будут заняты хотя бы одним элементом
- Когда в любой одной корзине окажется 8 элементов с коллизией
- Когда элементов станет больше 12 (16 × 0.75), до 32 корзинправильный ответ
- Никогда: таблица растёт только при вызове
ensureCapacity
Разбор
Порог resize = capacity × loadFactor, по умолчанию 16 × 0.75 = 12. Когда размер превышает порог, ёмкость удваивается. Важно число элементов, а не занятых корзин: несколько элементов в одной корзине тоже считаются. 8 в корзине связано с превращением в дерево. У HashMap нет ensureCapacity, начальную ёмкость задают в конструкторе.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.