Почему изменение размера осуществляется так, как оно есть?

У меня есть несколько вопросов о восстановленииHashMaps при добавлении новой пары ключ-значение. Я буду задавать вопросы, основанные на этих фактах (они верны для Oracle JVM, но я не уверен, верны ли они для других JVM):

Resize перестраиваетHashMap иметь больший массив внутренних таблиц каждый раз, когда вы увеличиваете HashMap больше, чем порог (threshold = loadFactor * numberOfEntries). Неважно, в какую корзину помещается вновь созданная запись - карта все равно будет увеличиваться. Даже если все записи входят в одно ведро (т. Е. Их ключи) hashCode() вернуть тот же номер).HashMap не сжимается при удалении данных. Даже если все ключи удалены изHashMap, его внутренний размерТаблица не меняется.

Теперь вопросы:

Верны ли эти факты?

Если они есть, то:

Почему изменение размера реализовано таким образом? Намерено ли вырастить внутренний стол, даже если это явно не нужно? Или ошибка?Почему это не дает усадки?

Ответы на вопрос(1)

Ваш ответ на вопрос