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

Posted

技术标签:

【中文标题】在 Java 中将 List<String> 转换为 String[]【英文标题】:Converting List<String> to String[] in Java 【发布时间】:2011-02-02 21:22:30 【问题描述】:

如何将字符串的list 转换为array?以下代码返回错误。

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)

【问题讨论】:

对于大多数有错误的问题,您应该发布您收到的错误消息。 我更喜欢***。感谢您在 google 中排名第一。 【参考方案1】:

你想要

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

有关文档,请参阅here,并注意您也可以通过填充传递的数组的方式调用此方法,而不仅仅是使用它来计算要返回的类型。另请注意,当您打印数组时,您可能更喜欢

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

因为这将打印实际的元素。

【讨论】:

使用 strlist.toArray(new String[strlist.size()]);通常效率更高。【参考方案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);



【讨论】:

我也喜欢这个版本的toArray 方法,因为它重用了参数strarray,而不是返回一个新实例【参考方案3】:

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

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

有关更多信息,请参阅 java.util.List 的 javadoc。

【讨论】:

【参考方案4】:

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

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

【讨论】:

您的 $ API 看起来很棒,也许像 'sort' 这样的几个方法可以接受比较器,使其更加有用。 谢谢!随时使用 bitbucket 向我发送补丁或开放功能请求。 为了查看您的实现,我必须安装 20M 程序来“克隆”您的 254.3 KB 源代码。 使用右侧的“获取源”按钮:这里是最新版本的链接bitbucket.org/dfa/dollar/get/tip.zip【参考方案5】:

希望这可以帮助那里的人:

列表列表 = ..;

String [] stringArray = list.toArray(new String[list.size()]);

来自这里的好答案:https://***.com/a/4042464/1547266

【讨论】:

【参考方案6】:

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

如果你想把 List 转换成字符串 使用 StringUtils.join(slist, '\n');

【讨论】:

以上是关于在 Java 中将 List<String> 转换为 String[]的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 Java Stream 中将 POJO 的列表转换为 Map<String,List>?

在Java中将List转换为String输出

如何在 .NET 6 / C# 10 中将 List<String?> 转换为 List<String>?

java中将一个list按照固定笔数平均分成若干个list

在 Java 中将 List 转换为 Set 的最简单方法