Выбор ответа Junior Коллекции изнутри обновлено

Когда HashMap расширяется

Вопрос

При какой заполненности new HashMap<>() впервые увеличит таблицу?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Когда элементов станет больше 12 (16 × 0.75), до 32 корзин. Порог resize = capacity × loadFactor, по умолчанию 16 × 0.75 = 12.

Варианты ответа

  1. Когда все 16 корзин таблицы будут заняты хотя бы одним элементом
  2. Когда в любой одной корзине окажется 8 элементов с коллизией
  3. Когда элементов станет больше 12 (16 × 0.75), до 32 корзинправильный ответ
  4. Никогда: таблица растёт только при вызове ensureCapacity

Разбор

Порог resize = capacity × loadFactor, по умолчанию 16 × 0.75 = 12. Когда размер превышает порог, ёмкость удваивается. Важно число элементов, а не занятых корзин: несколько элементов в одной корзине тоже считаются. 8 в корзине связано с превращением в дерево. У HashMap нет ensureCapacity, начальную ёмкость задают в конструкторе.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме