在 Java 中将 List<String>转换为 String[]有几种常用方法,以下是具体示例:

方法1:使用 toArray()方法(推荐)

List<String> list = Arrays.asList("Apple", "Banana", "Orange");

// 方法1.1:传入指定大小的数组
String[] array1 = list.toArray(new String[list.size()]);

// 方法1.2:传入空数组(更简洁,Java 推荐写法)
String[] array2 = list.toArray(new String[0]);

方法2:使用 Stream API(Java 8+)

List<String> list = Arrays.asList("Apple", "Banana", "Orange");

// 使用 Stream 转换
String[] array = list.stream().toArray(String[]::new);

方法3:手动循环创建数组

List<String> list = Arrays.asList("Apple", "Banana", "Orange");

String[] array = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
    array[i] = list.get(i);
}

完整示例代码

import java.util.Arrays;
import java.util.List;

public class ListToStringArray {
    public static void main(String[] args) {
        List<String> fruitList = Arrays.asList("Apple", "Banana", "Orange", "Grape");
        
        // 方法1:使用 toArray(推荐)
        String[] array1 = fruitList.toArray(new String[0]);
        
        // 方法2:使用 Stream
        String[] array2 = fruitList.stream().toArray(String[]::new);
        
        // 验证结果
        System.out.println("方法1结果: " + Arrays.toString(array1));
        System.out.println("方法2结果: " + Arrays.toString(array2));
    }
}

注意事项

  1. 空数组 vs 指定大小数组toArray(new String[0])在现代 Java 版本中性能很好,是推荐的写法

  2. 空列表处理:如果 List 可能为 null,需要先判空

  3. 不可变列表Arrays.asList()返回的列表大小固定,不能增删元素

安全转换(包含空值检查)

public static String[] safeConvert(List<String> list) {
    if (list == null) {
        return new String[0]; // 返回空数组而不是 null
    }
    return list.toArray(new String[0]);
}

推荐使用 list.toArray(new String[0]),这是最简洁且性能良好的方式。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐