杰瑞科技汇

Java声明String数组有几种方式?

在 Java 中声明(并初始化)String 数组有几种常见的方式,下面我将为你详细介绍最常用的几种方法,并附上代码示例和解释。

Java声明String数组有几种方式?-图1
(图片来源网络,侵删)

声明并指定长度(未初始化元素)

这种方式先创建一个指定长度的数组,但数组中的每个元素都默认为 null

语法:

String[] arrayName = new String[length];

示例:

// 声明一个可以存储 3 个 String 元素的数组
String[] names = new String[3];
// 此时数组中的元素都是 null
System.out.println(names[0]); // 输出: null
// 为数组元素赋值
names[0] = "Alice";
names[1] = "Bob";
names[2] = "Charlie";
// 访问数组元素
System.out.println(names[1]); // 输出: Bob

特点:

Java声明String数组有几种方式?-图2
(图片来源网络,侵删)
  • 数组的长度在创建时确定,之后不能改变。
  • 所有元素被初始化为 null(对于对象类型数组)。

声明并直接初始化元素

这种方式在声明数组的同时,直接为其赋值,数组的长度由初始化列表中的元素数量决定。

语法 1(使用 new 关键字):

String[] arrayName = new String[]{"value1", "value2", "value3"};

示例:

String[] fruits = new String[]{"Apple", "Banana", "Orange"};
// 访问数组元素
System.out.println(fruits[0]); // 输出: Apple
System.out.println(fruits.length); // 输出: 3

语法 2(简写,省略 new String[]): 这是 Java 中最常用、最简洁的写法。

String[] arrayName = {"value1", "value2", "value3"};

示例:

String[] cities = {"Beijing", "Shanghai", "Guangzhou"};
// 访问数组元素
System.out.println(cities[1]); // 输出: Shanghai
System.out.println(cities.length); // 输出: 3

特点:

  • 代码更简洁。
  • 数组的长度由初始化列表自动确定。

先声明,后初始化

如果你需要先声明数组变量,稍后再进行初始化,可以分两步完成。

示例:

// 第一步:仅声明数组变量,此时数组为 null
String[] books;
// 第二步:创建数组并赋值给变量
books = new String[]{"The Lord of the Rings", "1984", "To Kill a Mockingbird"};
// 访问数组元素
System.out.println(books[0]); // 输出: The Lord of the Rings

String 数组与 List<String> 的区别

在 Java 开发中,你还会经常遇到 List<String>,虽然它们都可以用来存储字符串列表,但有重要区别:

特性 String[] (数组) List<String> (列表, 如 ArrayList)
长度 固定,一旦创建,长度不能改变。 动态,可以随时添加或删除元素。
性能 访问速度快(基于索引的随机访问 O(1))。 添加/删除元素可能需要扩容,但 ArrayList 在末尾添加时性能很高。
功能 功能较少,只是一个容器。 功能丰富,提供了 add(), remove(), size(), sort() 等大量方法。
类型 原始类型(在 Java 中是对象,但语法上更像 C 风格)。 泛型集合。
使用场景 需要固定长度的集合。
性能要求极高,且数据量固定。
作为方法参数传递时,可变参数 () 必须用数组。
需要动态调整大小的集合。
需要使用集合框架提供的丰富方法。
现代 Java 开发中的首选。

示例:将 String[] 转换为 List<String>

String[] array = {"A", "B", "C"};
// 方法1:使用 Arrays.asList() (返回一个固定大小的列表)
List<String> list1 = Arrays.asList(array);
System.out.println(list1); // 输出: [A, B, C]
// list1.add("D"); // 这行代码会抛出 UnsupportedOperationException,因为列表大小固定
// 方法2:创建一个新的 ArrayList (推荐,可以修改)
List<String> list2 = new ArrayList<>(Arrays.asList(array));
list2.add("D");
System.out.println(list2); // 输出: [A, B, C, D]

场景 推荐方法
只是声明一个固定大小的数组,稍后赋值 String[] myArray = new String[10];
声明并立即用已知值填充数组 String[] myArray = {"A", "B", "C"}; (最常用)
先声明,稍后用已知值填充 String[] myArray; ... myArray = new String[]{"A", "B"};
需要动态添加/删除元素 使用 ArrayList<String>

对于大多数现代 Java 应用程序,如果你需要一个可以改变大小的字符串集合,ArrayList<String> 通常是比 String[] 更好的选择,但如果你明确知道数据量且需要高性能,或者必须使用可变参数,String[] 是合适的。

分享:
扫描分享到社交APP
上一篇
下一篇