Метод trimToSize() класса ArrayList в Java

Java ArrayList Java ArrayList

Метод trimToSize() используется для приведения ёмкости динамического массива к количеству элементов в массиве.

Синтаксис метода trimToSize():

arraylist.trimToSize();

Примечание:arraylist — это объект класса ArrayList.

Описание параметров:

  • Отсутствует

Возвращаемое значение

Не возвращает значение, только изменяет емкость ArrayList.

Пример

В следующем примере демонстрируется использование метода trimToSize():

Пример

import java.util.ArrayList;

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 Java ArrayList

Другие расширения