杰瑞科技汇

Java字符串数组如何初始化?

静态初始化

静态初始化是指在创建数组的同时,就为数组的每个元素分配内存空间并赋值,数组的长度由初始化值的个数决定。

Java字符串数组如何初始化?-图1
(图片来源网络,侵删)

使用 new 关键字(推荐)

这是最常见和推荐的方式,语法清晰。

// 语法:数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3, ...};
String[] names = new String[]{"Alice", "Bob", "Charlie", "David"};
// 访问数组元素
System.out.println(names[0]); // 输出: Alice
System.out.println(names[2]); // 输出: Charlie
// 获取数组长度
System.out.println("数组长度是: " + names.length); // 输出: 数组长度是: 4

简化的静态初始化(常用)

这种方式省略了 new 数据类型[] 部分,编译器会自动推断数组的类型和长度。

// 语法:数据类型[] 数组名 = {元素1, 元素2, 元素3, ...};
String[] fruits = {"Apple", "Banana", "Orange"};
System.out.println(fruits[1]); // 输出: Banana
System.out.println("数组长度是: " + fruits.length); // 输出: 数组长度是: 3

动态初始化

动态初始化是先创建一个指定长度的数组,此时数组中的每个元素都会被赋予一个默认值(对于 String 类型,默认值是 null),之后,你可以在需要时为每个元素赋值。

语法

// 语法:数据类型[] 数组名 = new 数据类型[数组长度];
String[] students = new String[3]; // 创建一个长度为3的String数组

students 数组的内容是:{null, null, null}

Java字符串数组如何初始化?-图2
(图片来源网络,侵删)

赋值

你可以通过索引来为每个元素赋值。

String[] students = new String[3];
// 为数组元素赋值
students[0] = "张三";
students[1] = "李四";
// students[2] 没有赋值,所以它仍然是 null
System.out.println(students[0]); // 输出: 张三
System.out.println(students[1]); // 输出: 李四
System.out.println(students[2]); // 输出: null

注意:对于引用类型(如 String),动态初始化后元素默认为 null,如果你尝试直接访问一个未赋值的元素并调用其方法,会抛出 NullPointerException

String[] temp = new String[2];
// temp[0] 是 null
// temp[0].toUpperCase(); // 这行代码会抛出 NullPointerException

特殊情况:初始化一个空数组

有时候你可能需要创建一个长度为0的数组,通常用作方法的返回值,表示“没有找到任何元素”。

// 方式一
String[] emptyArray1 = new String[0];
// 方式二
String[] emptyArray2 = {};
System.out.println(emptyArray1.length); // 输出: 0
System.out.println(emptyArray2.length); // 输出: 0

多维字符串数组初始化

多维数组本质上是“数组的数组”,初始化方式与一维数组类似。

Java字符串数组如何初始化?-图3
(图片来源网络,侵删)

静态初始化

// 创建一个 2x3 的二维字符串数组
String[][] matrix = {
    {"A", "B", "C"},
    {"D", "E", "F"}
};
System.out.println(matrix[0][0]); // 输出: A
System.out.println(matrix[1][2]); // 输出: F
System.out.println("行数: " + matrix.length);    // 输出: 行数: 2
System.out.println("列数: " + matrix[0].length); // 输出: 列数: 3

动态初始化

// 创建一个 3x3 的二维字符串数组,元素初始为 null
String[][] dynamicMatrix = new String[3][3];
dynamicMatrix[0][0] = "Hello";
dynamicMatrix[1][1] = "World";
System.out.println(dynamicMatrix[0][0]); // 输出: Hello
System.out.println(dynamicMatrix[1][1]); // 输出: World
System.out.println(dynamicMatrix[2][2]); // 输出: null

总结与最佳实践

初始化方式 语法 特点 适用场景
静态初始化 String[] arr = new String[]{"a", "b"};
String[] arr = {"a", "b"};
在创建时就确定所有元素,数组长度固定。 当你知道数组中所有元素时,推荐使用,第二种更简洁。
动态初始化 String[] arr = new String[3];
arr[0] = "a";
先指定长度,后逐个赋值,元素初始为 null 当数组元素数量已知,但具体值需要在运行时确定时使用。
空数组 String[] arr = new String[0];
String[] arr = {};
长度为0,用于表示“没有数据”的特殊情况。 作为方法返回值,表示查询结果为空。

核心要点:

  1. new 关键字:用于在堆内存中为数组分配空间。
  2. 大括号:用于在静态初始化时提供初始值列表。
  3. length 属性:通过 数组名.length 可以获取数组的长度。
  4. null 默认值:对于 String 等引用类型,动态初始化后元素默认为 null,需要注意 NullPointerException
分享:
扫描分享到社交APP
上一篇
下一篇