Почему sureCapacity() в Java ArrayList расширяет емкость с помощью const 1.5 или (oldCapacity * 3)/2 + 1?

Почему sureCapacity() в Java ArrayList расширяет емкость с помощью const 1.5 или (oldCapacity * 3)/2 + 1?


person Eric Chen    schedule 12.12.2010    source источник
comment
Вам может помочь очень похожий вопрос, заданный здесь: Логика, используемая в методе sureCapacity   -  person Sanjay T. Sharma    schedule 12.12.2010


Ответы (2)


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

person Ignacio Vazquez-Abrams    schedule 12.12.2010

Вы можете создать массив с небольшой емкостью, даже равной 0, и ваши небольшие емкости должны расти относительно быстро.

person Peter Lawrey    schedule 12.12.2010