Java ArrayList trimToSize()方法会修剪(设置)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
在上面的示例中,我们创建了名为languages的ArrayList。arraylist包含3个元素。注意这一行,
languages.trimToSize();
在此,trimToSize()方法将arraylist的容量设置为等于languages(即3)中的元素数。
我们使用ArrayList size()方法来获取arraylist中的元素数。
注意:ArrayList trimToSize()方法的工作不可见。
我们知道ArrayList的容量是动态变化的。那么使用ArrayList trimToSize()方法的好处是什么?
要了解 trimToSize() 方法的优势,我们需要知道ArrayList的工作原理。
在内部,ArrayList使用一个数组来存储它的所有元素。现在,在某个点,数组将被填满。当内部数组已满时,将创建一个容量为当前数组1.5倍的新数组。并且,所有元素都被移动到新的数组中。
例如,假设内部数组已满,我们仅需添加1个元素。 在这里,ArrayList将以相同的比例扩展(即前一个数组的1.5倍)。
在这种情况下,内部数组中会有一些未分配的空间。因此,trimToSize()方法将删除未分配的空间并更改arraylist的容量,使其等于arraylist中的元素数。