跳到主要内容

Java ArrayList trimToSize() 方法

trimToSize() 方法的语法是:

arraylist.trimToSize();

这里,arraylistArrayList 类的一个对象。

trimToSize() 参数

trimToSize() 方法不接受任何参数。

trimToSize() 返回值

trimToSize() 方法不返回任何值。它仅仅改变 arraylist 的容量。

示例 1:Java ArrayList trimToSize()

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 中元素的数量。

trimToSize() 方法的工作方式对用户来说是不可见的。