问题
我怎样才能在 Java 中将 ArrayList<String>
对象转换为String[]
数组?
#1 热门回答(1479 赞)
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()]
。但是,this blogpost 显示由于JVM优化,现在使用 new String[0]
更好。
#2 热门回答(123 赞)
Java 8中的另一种选择:
String[] strings = list.stream().toArray(String[]::new);
#3 热门回答(23 赞)
ArrayList<String> arrayList = new ArrayList<String>();
Object[] objectList = arrayList.toArray();
String[] stringArray = Arrays.copyOf(objectList,objectList.length,String[].class);
使用copyOf,ArrayList 也可以实现。