将 List 转换为 Array 在 Java 中:如何正确操作?
大家好!我刚开始学习 Java,遇到了一个问题。我有一个 ArrayList 包含字符串,需要将其转换为普通的 String[] 数组,以便传递给某个只接受数组的旧方法。
我写了这样的代码:
```java
List list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
// 尝试 1:直接赋值
String[] array = list; // 编译错误:incompatible types
// 尝试 2:使用 toArray()
String[] array2 = list.toArray(); // 错误:Object[] cannot be converted to String[]
```
第一种方法不行,因为 List 是接口,不是数组。第二种方法返回 Object[] 而不是 String[],尽管列表中只有字符串。我读到可以使用重载的 toArray(T[] a) 方法,但不太明白它是如何工作的。
请告诉我如何正确高效地将 List 转换为 String[]?有哪些陷阱?提前感谢!