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("Runoob");
sites.add("Taobao");
System.out.println("ArrayList : " + sites);
// 调整容量为3
sites.trimToSize();
System.out.println("ArrayList 大小: " + sites.size());
}
}
class Main {
public static void main(String[] args){
// 创建一个动态数组
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
System.out.println("ArrayList : " + sites);
// 调整容量为3
sites.trimToSize();
System.out.println("ArrayList 大小: " + sites.size());
}
}
执行以上程序输出结果为:
ArrayList : [Google, Runoob, Taobao]ArrayList 大小: 3
以上实例中 trimToSize()方法将动态数组的容量设置为 sites 的元素个数(即 3)。
ArrayList trimToSize() 的优点
我们知道 ArrayList 的容量是动态变化的。那么使用 ArrayList trimToSize() 方法的好处是什么?
要了解 trimToSize() 方法的优势,我们需要研究 ArrayList 内部的工作原理。
ArrayList 的内部使用数组存储元素,当数组将被存满,就会创建一个新数组,其容量是当前数组的 1.5 倍。
同时,所有元素都将移至新数组,假设内部数组已满,而我们现在又添加了 1 个元素,ArrayList 容量就会以相同的比例扩展(即前一个数组的1.5倍)。
在这种情况下,内部数组中将有一些未分配的空间。
这时,trimToSize() 方法可以删除未分配的空间并更改 ArrayList 的容量,使其等于 ArrayList 中的元素个数。