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

我该如何将一个ArrayList<String>对象转换为Java中的String[]数组?


List<String> list = ..;
String[] array = list.toArray(new String[0]);

例如:

List<String> list = new ArrayList<String>();
//add some stuff
list.add("android");
list.add("apple");
String[] stringArray = list.toArray(new String[0]);

不传递任何参数的toArray()方法返回Object[] 。 所以你必须传递一个数组作为参数,这个参数将被列表中的数据填充并返回。 您也可以传递一个空数组,但您也可以传递所需大小的数组。

重要更新 :最初上面的代码使用了new String[list.size()] 。 不过,这篇博客文章显示,由于JVM优化,现在使用new String[0]会更好。


Java 8中的另一种选择:

String[] strings = list.stream().toArray(String[]::new);

ArrayList<String> arrayList = new ArrayList<String>();
Object[] objectList = arrayList.toArray();
String[] stringArray =  Arrays.copyOf(objectList,objectList.length,String[].class);

使用copyOf,ArrayList也可以完成数组。

链接地址: http://www.djcxy.com/p/3363.html

上一篇: Converting 'ArrayList<String> to 'String[]' in Java

下一篇: Is there a fast concat method for linked list in Java?