Java 程序清空 ArrayList
Java 中的 ArrayList 是一个动态数组,其大小可以随着元素的添加或删除而增大或缩小。它是"java.util"包的一部分,是一种非常常用的集合。ArrayList 非常类似于数组,因为它将相同或同类类型的元素存储在连续的内存块中。在本文中,我们将介绍在 Java 中清空 ArrayList 的不同方法。
在 Java 中清空 ArrayList 主要有 4 种方法,如下所示 -
使用 Naïve 方法
使用 clear() 方法
使用 removeAll() 方法
分配新的 ArrayList 实例
现在让我们更详细地了解每种方法及其 Java 实现。
1. 使用 Naïve 方法
此方法不使用任何内置方法来删除 ArrayList 的元素,而是使用 while 循环。如果 ArrayList 为空,则 isEmpty() 方法返回 true 或 false。 while 循环一直执行,直到 isEmpty() 返回 false,并且每次都会在主体内部删除第一个元素或索引 0 处的元素。一旦 isEmpty() 返回 True,循环就会终止。它可以被视为一种手动且时间复杂的方法,它会从 ArrayList 中逐个删除每个元素。
示例
import java.util.ArrayList;
public class EmptyArrayListExample {
public static void main(String[] args) {
ArrayList<String> list_of_languages = new ArrayList<String>();
// 填充 ArrayList
list_of_languages.add("Java");
list_of_languages.add("Python");
list_of_languages.add("C++");
list_of_languages.add("R");
list_of_languages.add("C#");
list_of_languages.add("JavaScript");
System.out.println("Original Arraylist: " + list_of_languages);
// 运行 while 循环直到它变为空
while (!list_of_languages.isEmpty()) {
list_of_languages.remove(0); // 删除第一个元素
}
// 尝试清空 ArrayList 后打印该列表
System.out.println("Empty Arraylist: " + list_of_languages);
}
}
输出
上述程序将产生以下输出 -
Original Arraylist: [Java, Python, C++, R, C#, JavaScript] Empty Arraylist: []
2. Using the clear() Method
This approach involves the use of the ArrayList class’s in-built clear() method which doesn’t take in any parameters or return any values. It is the easiest way to empty an ArrayList.
示例
import java.util.ArrayList;
public class EmptyArrayListExample {
public static void main(String[] args) {
// 填充 arraylist
ArrayList<String> list_of_languages = new ArrayList<String>();
// 向 list_of_languages 中添加一些元素
list_of_languages.add("Java");
list_of_languages.add("Python");
list_of_languages.add("C++");
list_of_languages.add("R");
list_of_languages.add("C#");
list_of_languages.add("JavaScript");
// 打印原始 list_of_languages
System.out.println("Original Arraylist: " + list_of_languages);
// 使用 clear() 方法清空 list_of_languages
list_of_languages.clear();
// 打印空的语言列表
System.out.println("Empty Arraylist:" + list_of_languages);
}
}
输出
上述程序将产生以下输出 -
Original Arraylist: [Java, Python, C++, R, C#, JavaScript] Empty Arraylist: []
3. 使用 removeAll() 方法
removeAll() 方法也是 ArrayList 类的内置方法。此方法可以接受一个可选参数,该参数是要从 ArrayList 中删除的另一个元素集合或元素集。它返回一个布尔值,如果列表因函数调用而发生变化,则该值为 true。如果没有元素传递给它,它将删除列表中的所有元素。
示例
import java.util.ArrayList;
public class EmptyArrayListExample {
public static void main(String[] args) {
ArrayList<String> list_of_languages = new ArrayList<String>();
// 填充 ArrayList
list_of_languages.add("Java");
list_of_languages.add("Python");
list_of_languages.add("C++");
list_of_languages.add("R");
list_of_languages.add("C#");
list_of_languages.add("JavaScript");
System.out.println("Original Arraylist: " + list_of_languages);
// 使用 removeAll() 方法清空 list_of_languages
list_of_languages.removeAll(list_of_languages);
System.out.println("Empty Arraylist: " + list_of_languages);
}
}
输出
上述程序将产生以下输出 -
Original Arraylist: [Java, Python, C++, R, C#, JavaScript] Empty Arraylist: []
4. 分配新的 ArrayList 实例
此技术涉及创建 ArrayList 的新实例并将其再次分配给同一变量。但是,尽管此方法有效,但并不推荐使用,因为它会产生不必要的开销并可能导致潜在的内存泄漏。
当我们将新的 ArrayList 分配给同一现有 ArrayList 变量的实例时,旧的 ArrayList 对象将有资格进行垃圾收集。垃圾收集过程不会立即发生,可能需要一些时间才能将旧对象从内存中删除,这意味着我们可能在内存中拥有 2 个 ArrayList 对象,其中 1 个不再使用。
此外,旧的 ArrayList 对象在程序的其他地方仍然有对它的引用,即使不再使用旧对象,这些引用仍将指向旧对象。这可能是潜在内存泄漏的原因,导致程序消耗的内存超过实际需要。
示例
import java.util.ArrayList;
public class EmptyArrayListExample {
public static void main(String[] args) {
ArrayList<String> list_of_languages = new ArrayList<String>();
// 填充 ArrayList
list_of_languages.add("Java");
list_of_languages.add("Python");
list_of_languages.add("C++");
list_of_languages.add("R");
list_of_languages.add("C#");
list_of_languages.add("JavaScript");
System.out.println("Original Arraylist: " + list_of_languages);
// 创建并将 ArrayList 的新实例分配给旧 arrayList 变量
list_of_languages = new ArrayList<String>();
System.out.println("Empty Arraylist: " + list_of_languages);
}
}
输出
上述程序将产生以下输出 -
Original Arraylist: [Java, Python, C++, R, C#, JavaScript] Empty Arraylist: []
结论
ArrayList 是存储同类数据的动态大小数组。ArrayList 类为我们提供了几种清空 ArrayList 的方法。这些方法包括 clear() 方法和 removeAll() 方法。除了内置函数外,还有另外 2 种方法可以清空 ArrayList。这些方法包括删除 ArrayList 的每个元素的简单方法和将 ArrayList 的新实例分配给同一变量。在上述 4 种方法中,最好始终使用 clear() 方法。第 4 种方法是重新分配 ArrayList 类的新实例,该类负责清空 ArrayList,这种方法是可能的,应该避免。 ArrayList 在 Java 中很常用,与数组相比更灵活。总体而言,清空 ArrayList 是一项简单的任务。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

