Mih*_*der 291
像这样:
List<String> list = new ArrayList<String>();
String[] a = list.toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)
在Java6之前,建议写:
String[] a = list.toArray(new String[list.size()]);
Run Code Online (Sandbox Code Playgroud)
因为内部实现无论如何都会重新分配一个大小合适的数组,所以你最好先做好.由于Java6是首选的空数组,请参阅.toArray(new MyClass [0])或.toArray(new MyClass [myList.size()])?
如果您的列表没有正确输入,则需要在调用toArray之前进行强制转换.像这样:
List l = new ArrayList<String>();
String[] a = ((List<String>)l).toArray(new String[l.size()]);
Run Code Online (Sandbox Code Playgroud)
lim*_*imc 14
它实际上不需要返回Object[]
,例如: -
List<Custom> list = new ArrayList<Custom>();
list.add(new Custom(1));
list.add(new Custom(2));
Custom[] customs = new Custom[list.size()];
list.toArray(customs);
for (Custom custom : customs) {
System.out.println(custom);
}
Run Code Online (Sandbox Code Playgroud)
这是我的Custom
班级: -
public class Custom {
private int i;
public Custom(int i) {
this.i = i;
}
@Override
public String toString() {
return String.valueOf(i);
}
}
Run Code Online (Sandbox Code Playgroud)
将 List 转换为特定类型的 Array 的较短版本(例如 Long):
Long[] myArray = myList.toArray(Long[]::new);
Run Code Online (Sandbox Code Playgroud)