在 Java 中将 List<String> 转换为 String[]

2022-08-31 13:39:39

如何将字符串列表转换为数组?下面的代码返回一个错误。

public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");
    String[] strarray = (String[]) strlist.toArray();       
    System.out.println(strarray);
}

错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
    at test.main(test.java:10)

答案 1

你想要

String[] strarray = strlist.toArray(new String[0]);

有关文档,请参阅此处,请注意,您还可以以填充传递的数组的方式调用此方法,而不仅仅是使用它来确定要返回的类型。另请注意,也许当您打印阵列时,您更喜欢

System.out.println(Arrays.toString(strarray));

因为这将打印实际元素。


答案 2
public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");

    String[] strarray = new String[strlist.size()]
    strlist.toArray(strarray );

    System.out.println(strarray);


}