English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод trimToSize() класса Java ArrayList уменьшает (устанавливает) размер ArrayList до числа элементов в ArrayList.
Синтаксис метода trimToSize():
arraylist.trimToSize();
Метод trimToSize() не принимает никаких параметров
Метод trimToSize() не возвращает никакого значения. Вместо этого, он только изменяет размер ArrayList.
import java.util.ArrayList; class Main { public static void main(String[] args) { //Создание ArrayList ArrayList<String> languages = new ArrayList<>(); //Добавление элементов в ArrayList languages.add("Java"); languages.add("Python"); languages.add("JavaScript"); System.out.println("ArrayList: " + languages); // Уменьшение размера до 3 languages.trimToSize(); System.out.println("Размер ArrayList: " + languages.size()); } }
Результат вывода
ArrayList: [Java, Python, JavaScript] Размер ArrayList: 3
В примере выше мы создали ArrayList под названием languages. ArrayList содержит 3 элемента. Обратите внимание на эту строку:
languages.trimToSize();
Здесь метод trimToSize() устанавливает размер ArrayList равным languages (т.е. 3) числу элементов.
Мы используемArrayList size()метод для получения числа элементов в ArrayList.
ВниманиеArrayList trimToSize() метод работы не виден.
Мы знаем, что容量 ArrayList динамически изменяется. ТогдаКаковы преимущества использования метода trimToSize() ArrayList?
Чтобы понять преимущества метода trimToSize(), нужно знать принцип работы ArrayList.
Внутри, ArrayList использует массив для хранения всех своих элементов. В某一个 момент массив будет заполнен. Когда внутренний массив заполнен, будет создан новый массив с объемом в 1,5 раза больше текущего массива. И все элементы будут перемещены в новый массив.
Например, предположим, что внутренний массив уже полон, и нам нужно добавить1элементов. В этом случае, ArrayList расширится в том же соотношении (т.е. в 1,5 раза больше предыдущего массива).
В этом случае, в внутреннем массиве будет некоторое количество не выделенного пространства. Поэтому метод trimToSize() удалит не выделенное пространство и изменит容量 arraylist, чтобы он был равен количеству элементов arraylist.