Java程式:清空Java中的ArrayList
Java中的ArrayList是一個動態陣列,其大小可以隨著元素的新增或刪除而增長或縮小。它是“java.util”包的一部分,是一個非常常用的集合。ArrayList很像陣列,它將相同型別或同質型別的元素儲存在連續的記憶體塊中。在本文中,我們將瞭解在Java中清空ArrayList的不同方法。
主要有4種方法可以清空Java中的ArrayList,如下所示:
使用樸素方法
使用clear()方法
使用removeAll()方法
賦值一個新的ArrayList例項
現在讓我們更詳細地瞭解每種方法及其Java實現。
1. 使用樸素方法
此方法不使用任何內建方法來刪除ArrayList的元素,而是使用while迴圈。isEmpty()方法返回ArrayList是否為空(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>();
// Fill the 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);
// run a while loop till it becomes empty
while (!list_of_languages.isEmpty()) {
list_of_languages.remove(0); // remove the first element
}
// print the ArrayList after attempting to empty it
System.out.println("Empty Arraylist: " + list_of_languages);
}
}
輸出
上述程式將產生以下輸出:
Original Arraylist: [Java, Python, C++, R, C#, JavaScript] Empty Arraylist: []
2. 使用clear()方法
此方法使用ArrayList類的內建clear()方法,該方法不接受任何引數也不返回任何值。這是清空ArrayList的最簡單方法。
示例
import java.util.ArrayList;
public class EmptyArrayListExample {
public static void main(String[] args) {
// Fill the arraylist
ArrayList<String> list_of_languages = new ArrayList<String>();
// Add some elements to the 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");
// Print the original list_of_languages
System.out.println("Original Arraylist: " + list_of_languages);
// Use the clear() method to empty the list_of_languages
list_of_languages.clear();
// Print the empty list_of_languages
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>();
// Fill the 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);
// Use the removeAll() method to empty the 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物件,其中一個不再使用。
此外,程式中其他地方仍然引用舊的ArrayList物件,即使它不再使用,這些引用仍然指向舊的物件。這可能是潛在記憶體洩漏的原因,導致程式消耗比實際需要的更多記憶體。
示例
import java.util.ArrayList;
public class EmptyArrayListExample {
public static void main(String[] args) {
ArrayList<String> list_of_languages = new ArrayList<String>();
// Fill the 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);
// create and assign a new instance of the ArrayList to the old arrayList variable
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()方法。除了內建函式外,還有兩種方法可以清空ArrayList。這些方法包括樸素地刪除ArrayList的每個元素以及將新的ArrayList例項賦值給同一個變數。在上述四種方法中,最好使用clear()方法。第四種方法,即重新賦值一個新的ArrayList類例項來清空ArrayList,可能會導致潛在問題,應避免使用。ArrayList在Java中常用,並且比陣列更靈活。總的來說,清空ArrayList是一項簡單的任務。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP