Java 中 ArrayList trimToSize() 方法及示例
前言
Java 的 ArrayList 是一个实现了 List 接口的动态数组,它能够随意的增加或减少其大小。然而,在 ArrayList 中,存在一个 trimToSize() 方法,这个方法可以用来调整 ArrayList 的容量,使其容量等于元素的数量。本篇文章将介绍 ArrayList 的 trimToSize() 方法的用法以及示例。
trimToSize() 方法
ArrayList 的 trimToSize() 方法是用来调整 ArrayList 的容量的。在 ArrayList 中,为了保证操作的效率,系统在每次添加元素时,都会预留一定的空间。当元素的数量超过 ArrayList 的容量时,系统会自动增加容量。但是在一些情况下,我们希望将容量调整为与元素数量相同,以节省存储空间。这时,就可以使用 trimToSize() 方法。
trimToSize() 方法没有参数,它会将 ArrayList 的容量调整为与元素数量相同。
public void trimToSize()
示例
下面是一个简单的示例,演示了如何使用 trimToSize() 方法。
import java.util.ArrayList;
public class TrimToSizeDemo {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
System.out.println("Before trimToSize:");
System.out.printf("Size: %d, Capacity: %d\n", numbers.size(), numbers.capacity());
numbers.trimToSize();
System.out.println("After trimToSize:");
System.out.printf("Size: %d, Capacity: %d\n", numbers.size(), numbers.capacity());
}
}
输出结果为:
Before trimToSize:
Size: 5, Capacity: 10
After trimToSize:
Size: 5, Capacity: 5
可以看到,使用 trimToSize() 方法之前,ArrayList 的容量为 10,使用之后,容量被调整为 5。
注意事项
在使用 trimToSize() 方法时,需要注意以下几点:
- trimToSize() 方法可能会导致数组的重新分配,这可能会导致一些性能问题。
- 在 ArrayList 的元素数量不确定的情况下,不建议使用 trimToSize() 方法。使用这个方法之后,在添加元素时,就需要重新分配数组空间,这可能会降低程序的性能。
- 如果使用 trimToSize() 方法之后,又添加了更多的元素,系统会重新分配数组,这可能会导致一些性能问题。因此,在使用 trimToSize() 方法之后,应该尽量避免再向 ArrayList 中添加元素。
结论
在本文中,我们介绍了 ArrayList 的 trimToSize() 方法及其示例,它可以用来调整 ArrayList 的容量,使其容量等于元素的数量。但是,在使用 trimToSize() 方法时,需要注意其性能问题,以及在添加元素时重新分配数组的问题。