关于类型转换:转换List< String>

Converting List<String> to String[] in Java

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

1
2
3
4
5
6
7
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);
}

错误:

1
2
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]);

有关文档,请参见此处,并注意,您也可以这样调用此方法:它填充传递的数组,而不仅仅是使用它来计算返回的类型。另外请注意,当您打印阵列时,您可能更喜欢

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

因为这将打印实际元素。


1
2
3
4
5
6
7
8
9
10
11
12
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);


}


List.toArray()必须返回一个对象数组。要获取字符串数组,需要使用强制转换语法:

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

有关更多信息,请参见javadoc for java.util.list。


我为这类任务设计并实现了Dollar:

1
String[] strarray= $(strlist).toArray();


string[]strarray=strlist.toarray(新字符串[0]);

如果要列表转换为字符串使用StringUtils.join(slist,"");


希望这能帮助其他人:

列表列表=…

string[]stringarray=list.toarray(new string[list.size()]);

很好的答案:https://stackoverflow.com/a/4042464/1547266