Работает ли функция trimtosize() для функции sureCapacity() в ArrayList

Предположим, у меня есть список массивов строк. Я использовал функцию sureCapacity() и установил его емкость на 50.

Но я добавляю только 10 строковых элементов, а остальные 40 тратятся впустую.

Теперь после этого я использую trimToSize() функция.

Мой вопрос: "Сохраняет ли функция trimToSize() мою память 40"?

1 ответ

Решение

Я предполагаю, что вы говорите о Java, поскольку в Java ArrayList есть те методы, о которых вы упоминаете, например trimToSize (). И цитирование из Javadoc для этого метода:

Обрезает емкость этого экземпляра ArrayList в соответствии с текущим размером списка. Приложение может использовать эту операцию для минимизации хранения экземпляра ArrayList.

Так что ответ: да, именно так.

Но только чтобы запомнить вас: это "сэкономит" вам место, необходимое для 40 ссылок на объекты. Поэтому не имеет значения, хотите ли вы хранить строки, целые числа или объекты byte[] в этом списке.

И далее: если мы не говорим о ресурсах, критических средах например, в какой-то встроенной системе, вы не должны слишком беспокоиться о 40 слотах списка. Может быть, около 100K; или 10 миллионов слотов; но не около 40.

Другие вопросы по тегам