Компенсация коэффициента загрузки Java

1

Я слышал, что коэффициент загрузки в HashMap восстанавливает ведра в другое место, и лучше сохранить его на уровне 0,75, так что, когда размер коснется 0,75 * текущей емкости, массив ведер перераспределяет в два раза текущую емкость

Например, у нас есть емкость 16; массив перераспределяется, когда размер становится 16 * 0.75 = 12. На этом этапе мы создаем дополнительные 16 элементов еще до того, как массив коснется 16, потому что он неэффективен.

Если это время эффективно, как оно становится или есть какие-либо компромиссы для использования коэффициента загрузки?

  • 0
    Добро пожаловать в SO, попробуйте и найдите соответствующие вопросы, прежде чем отправлять свои! Вы можете найти этот вопрос информативным stackoverflow.com/questions/10901752/…
  • 1
    Этот вопрос не связан с функциональным программированием.
Показать ещё 3 комментария
Теги:
performance
collections
hashmap

1 ответ

1
Лучший ответ

HashMap работает лучше всего, когда есть низкая скорость столкновения. Чем больше емкость, тем меньше вероятность столкновения. т.е. две клавиши в одном ковше.

Чтобы избежать высоких скоростей столкновений, коэффициент загрузки используется для обеспечения того, чтобы базовый массив не превышал 75%.

BTW Дополнительная память, используемая массивом, мала по сравнению с другими накладными расходами.

  • 1
    Чем позже емкость?
  • 0
    @gknicker Спасибо. ;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню