如何在 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