Метод trimToSize() класса ArrayList в Java
Метод trimToSize() используется для приведения ёмкости динамического массива к количеству элементов в массиве.
Синтаксис метода trimToSize():
arraylist.trimToSize();
Примечание:arraylist — это объект класса ArrayList.
Описание параметров:
- Отсутствует
Возвращаемое значение
Не возвращает значение, только изменяет емкость ArrayList.
Пример
В следующем примере демонстрируется использование метода trimToSize():
Пример
class Main {
public static void main(String[] args){
// Создать динамический массив
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Example");
sites.add("Taobao");
System.out.println("ArrayList : " + sites);
// Установить емкость равной 3
sites.trimToSize();
System.out.println("ArrayList size: " + sites.size());
}
}
Выполнение вышеуказанной программы дает следующий вывод:
ArrayList : [Google, Example, Taobao] ArrayList 大小: 3
В приведенном выше примере метод trimToSize() устанавливает емкость динамического массива равной количеству элементов в sites (т.е. 3).
Преимущества метода trimToSize() в ArrayList
Мы знаем, что емкость ArrayList изменяется динамически. Так в чем же преимущество использования метода trimToSize() в ArrayList?
Чтобы понять преимущества метода trimToSize(), нам нужно изучить внутренние принципы работы ArrayList.
ArrayList внутри использует массив для хранения элементов. Когда массив почти заполнен, создается новый массив с емкостью в 1.5 раза больше текущего массива.
В то же время все элементы перемещаются в новый массив. Предположим, внутренний массив заполнен, и мы добавляем еще 1 элемент; емкость ArrayList увеличится в том же соотношении (т.е. в 1.5 раза по сравнению с предыдущим массивом).
В этом случае во внутреннем массиве останется некоторое невыделенное пространство.
На этом этапе метод trimToSize() может удалить нераспределённое пространство и изменить вместимость ArrayList так, чтобы она стала равна количеству элементов в ArrayList.
Другие расширения
Java ArrayList