在 Java 中初始化 String 数组有几种常见的方法,以下是详细的说明和示例代码:
直接声明并初始化
在声明数组的同时直接指定初始值。
String[] fruits = {"Apple", "Banana", "Orange"};
特点:
- 数组长度由初始值自动确定(此处为 3)。
- 简洁高效,适用于已知初始值的情况。
先声明数组,后初始化
分两步完成:先声明数组,再通过 new 关键字初始化。
方法 1:指定长度后赋值
String[] colors = new String[3]; // 创建长度为 3 的数组 colors[0] = "Red"; colors[1] = "Green"; colors[2] = "Blue";
方法 2:直接初始化
String[] languages = new String[]{"Java", "Python", "C++"};
特点:
- 适合需要动态确定数组长度或分阶段赋值的场景。
new String[]可以省略,但显式写更清晰。
使用 Arrays.fill() 填充相同值
如果数组需要填充相同的初始值,可以使用 Arrays.fill()。
import java.util.Arrays; String[] emptyArray = new String[5]; Arrays.fill(emptyArray, "Default"); // 所有元素设为 "Default"
输出:
[Default, Default, Default, Default, Default]
使用流(Java 8+)动态初始化
通过 Stream 生成动态数组(例如从范围或条件生成)。
import java.util.Arrays;
import java.util.stream.IntStream;
String[] numbers = IntStream.range(0, 5) // 生成 0 到 4
.mapToObj(i -> "Number-" + i)
.toArray(String[]::new);
输出:
[Number-0, Number-1, Number-2, Number-3, Number-4]
二维数组的初始化
直接初始化
String[][] matrix = {
{"A", "B"},
{"C", "D", "E"},
{"F"}
};
动态初始化
String[][] dynamicMatrix = new String[2][3]; // 2行3列 dynamicMatrix[0][0] = "X"; dynamicMatrix[0][1] = "Y"; dynamicMatrix[0][2] = "Z";
注意事项
- 数组长度固定:Java 数组一旦创建,长度不可改变。
- 默认值:若未显式初始化,元素为
null(引用类型)。 - 不可变性:
String对象本身不可变,但数组可以修改引用。
完整示例代码
import java.util.Arrays;
public class StringArrayExample {
public static void main(String[] args) {
// 方法1:直接初始化
String[] fruits = {"Apple", "Banana", "Orange"};
System.out.println("方法1: " + Arrays.toString(fruits));
// 方法2:声明后初始化
String[] colors = new String[3];
colors[0] = "Red";
colors[1] = "Green";
colors[2] = "Blue";
System.out.println("方法2: " + Arrays.toString(colors));
// 方法3:Arrays.fill()
String[] emptyArray = new String[3];
Arrays.fill(emptyArray, "Unknown");
System.out.println("方法3: " + Arrays.toString(emptyArray));
// 方法4:流初始化
String[] numbers = Arrays.stream(new String[5])
.map(i -> "Item-" + i)
.toArray(String[]::new);
System.out.println("方法4: " + Arrays.toString(numbers));
}
}
输出:
方法1: [Apple, Banana, Orange]
方法2: [Red, Green, Blue]
方法3: [Unknown, Unknown, Unknown]
方法4: [Item-null, Item-null, Item-null, Item-null, Item-null] 