在 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>?