清空 ArrayList 最推荐使用 clear() 方法,它会直接移除所有元素并释放引用,使所有指向该列表的引用均生效,而重新 new ArrayList() 仅让变量指向新对象,原列表若无其他引用才会被回收;clear() 不创建新对象,性能更高,适用于共享列表场景,优先推荐使用 clear()。
清空一个 ArrayList 有几种方式,但最快速且推荐的方法是使用内置的 clear()
方法。
clear() 是 ArrayList 提供的直接方法,用于移除列表中的所有元素,使列表变为空。
这个方法会将所有元素置为 null,释放引用,便于垃圾回收。
示例代码:
ArrayListlist = new ArrayList<>();
list.add("A");
list.add("B");
list.clear(); // 列表被清空,size 变为 0
另一种方式是将变量指向一个新的 ArrayList 实例:
list = new ArrayList<>();
这种方式不会清除原列表,而是让变量不再引用它。原来的列表如果没有其他引用,会在后续被 GC 回收。适用于你不再需要原列表的场景。
注意:如果其他地方还持有原列表的引用,它不会被清空。
如果你希望多个引用共享同一个列表,并在清空后都看到空状态,应使用 clear()。
从性能角度看,clear() 更高效,因为它不需要创建新对象,仅遍历内部数组将元素设为 null 并更新大小。
除非你需要隔离上下文(比如避免影响旧数据),否则优先使用 list.clear()。
基本上就这些,简单直接。清空 ArrayList 推荐用 clear(),快又安全。