Работает ли функция trimtosize() для функции sureCapacity() в ArrayList
Предположим, у меня есть список массивов строк. Я использовал функцию sureCapacity() и установил его емкость на 50.
Но я добавляю только 10 строковых элементов, а остальные 40 тратятся впустую.
Теперь после этого я использую trimToSize()
функция.
Мой вопрос: "Сохраняет ли функция trimToSize() мою память 40"?
1 ответ
Я предполагаю, что вы говорите о Java, поскольку в Java ArrayList есть те методы, о которых вы упоминаете, например trimToSize (). И цитирование из Javadoc для этого метода:
Обрезает емкость этого экземпляра ArrayList в соответствии с текущим размером списка. Приложение может использовать эту операцию для минимизации хранения экземпляра ArrayList.
Так что ответ: да, именно так.
Но только чтобы запомнить вас: это "сэкономит" вам место, необходимое для 40 ссылок на объекты. Поэтому не имеет значения, хотите ли вы хранить строки, целые числа или объекты byte[] в этом списке.
И далее: если мы не говорим о ресурсах, критических средах например, в какой-то встроенной системе, вы не должны слишком беспокоиться о 40 слотах списка. Может быть, около 100K; или 10 миллионов слотов; но не около 40.