在 Java 中刪除字串陣列中的所有元素
1. 概述
在 Java 中,處理資料集合時使用陣列是一項常見任務。有時,我們可能會發現自己需要從String陣列中刪除所有元素。這項任務很簡單,儘管它要求我們考慮數組在 Java 中的工作原理。
在本快速教學中,我們將探討如何從String陣列中刪除所有元素。
2.問題介紹
從數組中刪除所有元素有助於清理資料或重置數組以獲取新輸入。在深入研究實作之前,讓我們先快速了解一下 Java 中陣列的工作原理。
Java 中的陣列的大小是固定的。換句話說,一旦我們創建了一個數組,我們就無法改變它的長度。這個特性影響了我們處理「刪除」或「插入」元素等操作的方式,這並不像ArrayList這樣的Collections那麼簡單。
當我們談論從String陣列中刪除所有元素時,我們有兩個選擇:
- 重新初始化一個新數組(根據需求,新數組可以為空或相同大小)
- 將數組中的所有元素重設為
null值。
接下來,讓我們仔細研究這兩種方法。為簡單起見,我們將利用單元測試斷言來驗證每種方法是否如預期般運作。
3. 非最終數組變數:重新初始化與重新賦值
這種方法的想法非常簡單。假設我們有一個陣列變數myArray ,其中包含一些元素。要清空myArray ,我們可以重新初始化一個空數組並將其重新分配給myArray變數。
接下來我們透過一個例子來了解它是如何運作的:
String[] myArray1 = new String[] { "Java", "Kotlin", "Ruby", "Go", "C#", "C++" };
myArray1 = new String[0];
assertEquals(0, myArray1.length);
在此範例中,我們建立一個大小為 0 的新陣列並將其指派回myArray1 。這透過建立一個全新的空數組有效地刪除了所有元素。
有時,我們希望新數組的長度與原始數組的length相同。在這種情況下,我們可以用所需的大小初始化新陣列:
static final String[] SIX_NULL_ARRAY = new String[] { null, null, null, null, null, null };
String[] myArray2 = new String[] { "Arch Linux", "Debian", "CentOS", "Gentoo", "Fedora", "Redhat" };
myArray2 = new String[myArray2.length];
assertArrayEquals(SIX_NULL_ARRAY, myArray2);
如測試所示,新數組的大小與原始數組相同(6),並且所有元素均為null值。
透過重新初始化和重新分配來刪除所有元素非常簡單。如果我們想要完全重置數組並可能使用不同的大小,則此方法非常有用。但是,由於我們需要將新數組分配回同一變量,因此僅當數組變數不是final時,此方法才有效。
接下來,讓我們探討一下如果陣列變數宣告為final如何刪除所有陣列元素。
4. 將所有元素重設為null
我們已經提到 Java 中的陣列的大小是固定的。也就是說,當一個陣列被初始化並分配給一個final變數時,我們不能刪除它的元素來得到一個空數組( length=0 ) 。
從陣列中「刪除」元素的一種方法是將每個元素設為null 。此方法不會更改陣列的大小,但會有效地清除其內容。
接下來,我們來看一個例子:
final String[] myArray = new String[] { "A", "B", "C", "D", "E", "F" };
for (int i = 0; i < myArray.length; i++) {
myArray[i] = null;
}
assertArrayEquals(SIX_NULL_ARRAY, myArray);
如上面的範例所示,我們循環遍歷myArray並為每個元素分配一個null 。運行循環後,數組myArray仍具有相同的長度,但其所有元素將為null 。
5.使用Arrays.fill()方法
Java 的Arrays類別提供了一個方便的fill()方法,讓我們可以將陣列的所有元素設定為特定值。我們可以使用此方法將所有元素設為null ,類似於循環中的重置方法,但程式碼更少:
final String[] myArray = new String[] { "a", "b", "c", "d", "e", "f" };
Arrays.fill(myArray, null);
assertArrayEquals(SIX_NULL_ARRAY, myArray);
可以看到,使用Arrays.fill()方法,我們可以透過一行程式碼實現陣列的重置,更加簡潔。
六、結論
在 Java 中刪除陣列中的所有元素是使用陣列時的常見任務,可以透過多種方式完成。
在本文中,我們透過範例探索了三種不同的方法來實現這一目標:
- 重新初始化陣列 – 當我們想要使用可能不同大小的新陣列重新開始時,這是理想的選擇。但是,它僅適用於非最終數組變數。
- 重設為
null– 這適合清除內容但保留數組大小以供將來使用。 - 使用
Arrays.fill()– 在維護陣列大小時重置所有元素的乾淨簡潔的方法。
透過了解可用的選項,我們可以選擇適合我們特定情況的最佳方法,確保我們的程式碼高效且清晰。
與往常一樣,範例的完整原始程式碼可在 GitHub 上取得。