Java将 List 类型转化为 Array 的方法

方法一:

List 提供了toArray的方法,可以使得ArrayList 转化为一个数组。

Suppose x is a list known to contain only strings. The following code
can be used to dump the list into a newly allocated array of String:

1
2
String[] y = x.toArray(new String[0]);

方法二:

List 还提供了类似的方法,也可以达到这个目的,但是这个方法比较繁琐:

1
String[] y = (String[])x.toArray();

像上面这种写法,会报错:

Exception in thread “main” java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

这是因为 Java 中的转型机制一次性只能转型一个对象,不能将一个集合转成另一个数组。因此想要转型成功,就得写循环,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test01 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
list.add("!");
String[] strings = new String[list.size()];
Object[] arr = list.toArray();
for (int i = 0; i < list.size(); i++) {
strings[i] = (String) arr[i];
}
for (String string : strings) {
System.out.println(string);
}
}
}

Java将 List 类型转化为 Array 的方法
http://blog.luliang.online/2023/03/07/Java将 List 类型转化为 Array 的方法/
作者
Luyoung
发布于
2023年3月7日
许可协议