trimToSize()
方法的语法是:
arraylist.trimToSize();
这里,
arraylist 是
ArrayList
类的对象。
trimToSize() 参数
trimToSize()
方法不带任何参数
trimToSize() 返回值
trimToSize()
方法不返回任何值。相反,它只会改变数组列表的容量。
示例 1: Java ArrayList trimToSize()
import java.util.ArrayList; class Main { public static void main(String[] args) { // create an ArrayList ArrayList<String> languages = new ArrayList<>(); // add element to ArrayList languages.add("Java"); languages.add("Python"); languages.add("JavaScript"); System.out.println("ArrayList: " + languages); // trim capacity to 3 languages.trimToSize(); System.out.println("Size of ArrayList: " + languages.size()); } }
输出
ArrayList: [Java, Python, JavaScript] Size of ArrayList: 3
在上面的例子中,我们创建了两个名为
languages 的数组列表。 arraylist 包含 3 个元素。注意这一行,
languages.trimToSize();
此处,
trimToSize()
方法将 arraylist 的容量设置为等于
languages 中元素的数量(即 3)。
我们使用了 ArrayList size() 方法来获取数组列表。
ArrayList trimToSize()的优点
我们知道
ArrayList
的容量是动态变化的。那么使用ArrayList的trimToSize()方法有什么好处?
要了解
trimToSize()
方法的优势,我们需要了解
ArrayList
的工作原理。
在内部,
ArrayList
使用一个数组来存储其所有元素。现在,在某个时候,数组将被填充。当内部阵列已满时,会创建一个新阵列,其容量是当前阵列的 1.5 倍。并且,所有元素都移动到新数组中。
例如,假设内部数组已满,我们只需要添加1 个元素。在这里,
ArrayList
将以相同的比例扩展(即前一个数组的 1.5 倍)。
在这种情况下,内部数组中会有一些未分配的空间。因此,
trimToSize()
方法移除了未分配的空间,并将 arraylist 的容量更改为等于 arraylist 中元素的数量。
ArrayList
trimToSize()
方法的这种工作对用户是不可见的。