在 Java 里,存在多种清空列表的方式,下面为你汇总并附上对应的示例代码:
import java.util.ArrayList;
import java.util.List;
public class ListClearDemo {
public static void main(String[] args) {
// 初始化一个列表
List<String> summaryTypes = new ArrayList<>();
summaryTypes.add("Type1");
summaryTypes.add("Type2");
summaryTypes.add("Type3");
System.out.println("原始列表: " + summaryTypes);
// 方法 1: 使用 clear() 方法
List<String> method1List = new ArrayList<>(summaryTypes);
method1List.clear();
System.out.println("使用 clear() 方法清空后的列表: " + method1List);
// 方法 2: 创建新列表并赋值
List<String> method2List = new ArrayList<>(summaryTypes);
method2List = new ArrayList<>();
System.out.println("创建新列表并赋值后原引用指向的列表: " + method2List);
// 方法 3: 使用 removeAll 方法
List<String> method3List = new ArrayList<>(summaryTypes);
method3List.removeAll(new ArrayList<>(method3List));
System.out.println("使用 removeAll 方法清空后的列表: " + method3List);
// 方法 4: 循环移除元素
List<String> method4List = new ArrayList<>(summaryTypes);
while (!method4List.isEmpty()) {
method4List.remove(0);
}
System.out.println("循环移除元素后清空的列表: " + method4List);
}
}
代码解释
clear()
方法:调用列表的clear()
方法可直接移除列表里的全部元素,这是最常用且高效的方式。- 创建新列表并赋值:创建一个全新的列表对象,再把它赋值给原引用,旧列表对象会被垃圾回收。不过要注意,若原列表在其他地方还有引用,这些引用不会受到影响。
removeAll
方法:借助removeAll
方法移除列表中包含在指定集合里的所有元素。这里传入一个包含原列表所有元素的集合,以此实现清空列表的效果。- 循环移除元素:通过
while
循环不断调用remove(0)
方法移除列表的第一个元素,直至列表为空。但此方法的时间复杂度较高,对于ArrayList
而言,时间复杂度为 O(n2)。
在实际应用中,建议优先使用 clear()
方法,因为它简洁且高效。