От a recently posted question Я наткнулся на ArrayList#trimToSize(), который уменьшает размер поддерживающей матрицы до текущего размера коллекции.Использование метода ArrayList # trimToSize()?
Цитирование JavaDoc
вырезания емкости этого ArrayList, например, чтобы быть текущий размером списка. Приложение может использовать эту операцию для минимизации хранения экземпляра ArrayList.
И Javadoc говорит, что приложение может использовать, чтобы уменьшить объем памяти массива поддержки. Если я не ошибаюсь, этот метод не будет полезен для небольших размеров, так как стоимость некоторых ссылок не повредит.
Но из-за алгоритм, используемого Список_массивами int newCapacity = (oldCapacity * 3)/2 + 1;
в 1,6 и int newCapacity = oldCapacity + (oldCapacity >> 1);
в 1.7, при добавлении нового элемента, если oldcapacity
велико, то это создаст новый массив подкладочного с вышеприведенным алгоритмом и может выделять много ненужного пространства, если только один элемент добавляется после динамического расширения.
Является ли мое обоснование методом правильным или есть некоторые другие приложения к нему?
Алгоритм изменения размера (по крайней мере, в Java 7) - это 'int newCapacity = oldCapacity + (oldCapacity >> 1);'. –
@JeroenVannevel Спасибо, я добавил пункт. –
Downvoter хочет прокомментировать? –