17370845950

Java中如何快速清空一个ArrayList
清空 ArrayList 最推荐使用 clear() 方法,它会直接移除所有元素并释放引用,使所有指向该列表的引用均生效,而重新 new ArrayList() 仅让变量指向新对象,原列表若无其他引用才会被回收;clear() 不创建新对象,性能更高,适用于共享列表场景,优先推荐使用 clear()。

清空一个 ArrayList 有几种方式,但最快速且推荐的方法是使用内置的 clear() 方法。

使用 clear() 方法

clear() 是 ArrayList 提供的直接方法,用于移除列表中的所有元素,使列表变为空。

这个方法会将所有元素置为 null,释放引用,便于垃圾回收。

示例代码:

ArrayList list = new ArrayList<>();
list.add("A");
list.add("B");
list.clear(); // 列表被清空,size 变为 0

重新赋值为新实例

另一种方式是将变量指向一个新的 ArrayList 实例:

list = new ArrayList<>();

这种方式不会清除原列表,而是让变量不再引用它。原来的列表如果没有其他引用,会在后续被 GC 回收。适用于你不再需要原列表的场景。

注意:如果其他地方还持有原列表的引用,它不会被清空。

对比说明

  • clear():真正清空原有对象,所有引用该列表的地方都会看到一个空列表。
  • 重新 new:创建新对象,原对象仍存在,只是当前变量不再指向它。

如果你希望多个引用共享同一个列表,并在清空后都看到空状态,应使用 clear()

性能建议

从性能角度看,clear() 更高效,因为它不需要创建新对象,仅遍历内部数组将元素设为 null 并更新大小。

除非你需要隔离上下文(比如避免影响旧数据),否则优先使用 list.clear()

基本上就这些,简单直接。清空 ArrayList 推荐用 clear(),快又安全。