📜  Java ArrayList trimToSize()

📅  最后修改于: 2020-09-27 00:33:25             🧑  作者: Mango

Java ArrayList trimToSize()方法修剪(设置)arraylist的容量,使其等于arraylist中的元素数。

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) {
        // create an ArrayList
        ArrayList 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

在上面的示例中,我们创建了两个名为language的数组列表。 arraylist包含3个元素。注意这一行,

languages.trimToSize();

在这里, trimToSize()方法将arraylist的容量设置为等于语言中元素的数量(即3)。

我们已经使用ArrayList size()方法来获取arraylist中的元素数量。


ArrayList trimToSize()的优点

我们知道ArrayList的容量是动态变化的。那么使用ArrayList trimToSize()方法的好处是什么?

要了解trimToSize()方法的优势,我们需要研究ArrayList的工作。

在内部, ArrayList使用数组存储其所有元素。现在,在某个时候,数组将被填充。当内部阵列已满时,将创建一个新阵列,其容量是当前阵列的1.5倍。并且,所有元素都将移至新数组。

例如,假设内部数组已满,我们仅需添加1个元素。在这里, ArrayList将以相同的比例扩展(即前一个数组的1.5倍)。

在这种情况下,内部阵列中将有一些未分配的空间。因此, trimToSize()方法将删除未分配的空间,并将arraylist的容量更改为等于arraylist中的元素数。

用户看不到ArrayList trimToSize()方法的工作。