如何在 Java 中初始化字串陣列
Hassan Saeed
2023年1月30日
2020年10月27日
本教程介紹了 Java 中初始化字串陣列的方法。
Java 陣列的長度是固定的,因此,我們需要宣告一個陣列,並對其進行初始化,以便它能夠為元素分配正確的記憶體儲存。如果我們只宣告陣列,就沒有為元素分配記憶體,當你試圖為陣列的任何索引賦值時,它將丟擲一個錯誤。
Java 中初始化陣列為預設值
下面的例子說明了如何在 Java 中初始化一個字串陣列。它建立了一個指定長度的陣列,在所有索引處都包含預設值 null
,稍後設定為所需的值。
public class MyClass {
public static void main(String args[]) {
String[] myArr;
myArr = new String[5];
myArr[0] = "First";
for (int i = 0; i < myArr.length; i++){
System.out.println(myArr[i]);
}
}
}
輸出:
First
null
null
null
null
我們將第一個索引的值重新分配給 First
,而其他索引都包含預設值 null
。
讓我們看看如果我們嘗試在沒有初始化陣列的情況下給任意陣列索引賦值會發生什麼。
public class MyClass {
public static void main(String args[]) {
String[] myArr;
myArr[0] = "First";
}
}
輸出:
/MyClass.java:4: error: variable myArr might not have been initialized
myArr[0] = "First";
^
1 error
Java 中初始化陣列為直接值
我們也可以用陣列中我們需要的值來初始化一個陣列。在這種情況下,陣列的長度將固定為我們初始化它的元素數。下面的例子說明了這一點。
public class MyClass {
public static void main(String args[]) {
String[] myArr = {"First", "Second"};
for (int i = 0; i < myArr.length; i++){
System.out.println(myArr[i]);
}
}
}
輸出:
First
Second
上面的程式碼塊建立了一個長度為 2 的陣列,因為我們在初始化時提供了 2 個值。
Java 中使用 Stream
將陣列初始化為值
對於 Java 8 及以上版本,我們可以利用 Stream
來初始化一個給定值的 Strings 陣列。下面的例子說明了這一點。
import java.util.stream.*;
public class MyClass {
public static void main(String args[]) {
String[] strings = Stream.of("First", "Second", "Third").toArray(String[]::new);
for (int i=0; i<strings.length; i++){
System.out.println(strings[i]);
}
}
}
輸出:
First
Second
Third