Java 中将 List 转换为 Array

2025 年 9 月 5 日 | 阅读 5 分钟

List 是一个广泛使用的集合接口,用于存储有序的集合。List 接口维护元素的插入顺序,并且可以存储重复值。

了解更多 Java List 接口

在 Java 中,有以下三种将 List 转换为数组的方法,它们分别是:

  1. 使用 List.get() 方法
  2. 使用 List.toArray() 方法
  3. 使用 Java 8 Stream

使用 List.get() 方法

这是将列表转换为数组的最简单方法之一。通过这种方式,我们逐个访问列表中的所有元素,并将它们添加到数组中。

语法

其中 E 是 List 中元素的类型。

List.get() 方法返回位于 List 中指定位置的元素。如果索引超出范围(index < 0 || index >= size()),则该方法会抛出 IndexOutOfBoundsException

示例:将 List 转换为 Array

示例

编译并运行

输出

After Converting List into an Array
1 element of the array is Paul
2 element of the array is Donal
3 element of the array is James
4 element of the array is Robert
5 element of the array is Mery

使用 List.toArray() 方法

这是将列表转换为数组的另一种方法。通过使用 List.toArray() 方法,我们可以轻松地将列表转换为数组。toArray() 方法返回一个包含列表中所有元素的数组。返回的数组中的元素顺序与列表中的顺序相同。

语法

toArray() 方法可以接受一个数组作为参数,或者不接受任何参数,它都会返回一个包含列表中所有元素的数组。

示例:将 List 转换为 Array

示例

编译并运行

输出

After converting List into an Array
1 element of the array is Paul
2 element of the array is Donal
3 element of the array is James
4 element of the array is Robert
5 element of the array is Mery

使用 Java 8 Stream

还有一种将 List 转换为数组的方法,即使用 Java 8 引入的 Stream API。

toArray() 方法可以接受一个数组作为参数,或者不接受任何参数。它会返回一个包含列表中所有元素的数组。

示例:将 List 转换为 Array

示例

编译并运行

输出

Converted Array:
Java
Python
C++
Go

结论

在 Java 中将 List 转换为数组是一个常见且有用的操作,尤其是在与需要数组的 API 或库交互时。Java 提供了三种主要的方法来执行此转换:使用 get() 方法、toArray() 方法以及 Java 8 引入的 stream() API。其中,get() 方法是一种基本的手动方法,通过索引逐个访问元素。虽然简单,但对于大型数据集可能效率较低。

toArray() 方法是最常用和推荐的方法,因为它简单、高效,并且在 Java Collection Framework 中得到直接支持。它允许将整个列表快速转换为数组,可以预定义大小,也可以不预定义。stream() 方法是一种现代的、函数式的方法,适合使用 Java 8 及以上版本的开发人员。

Java List 到 Array 的选择题

Q1. 关于 Java 中的 List 接口,以下说法正确的是?

  1. 它以随机顺序存储元素
  2. 它允许唯一元素
  3. 它维护插入顺序并允许重复
  4. 它不支持索引
 

答案:C

解释: List 接口允许重复值,并维护插入顺序。由于它支持按索引访问,因此这种集合在 Java 中很有用。


Q2. List 中的 get(int index) 方法的目的是什么?

  1. 删除元素
  2. 获取指定索引处的元素
  3. 添加元素
  4. 将 List 转换为 Set
 

答案: B

解释: 使用 get() 方法从列表中获取给定索引处的元素。在手动将列表转换为数组时,通常在循环中使用它。


Q3. 以下将 List 转换为数组的方法中,哪一种是 Java 中最简洁和现代的方法?

  1. 在循环中使用 get()
  2. 使用 toArray(new String[0])
  3. 使用 stream().toArray(String[]::new)
  4. 使用数组类的构造函数
 

答案:C

解释: Java 8 引入了 Stream API,通过 stream() 将列表转换为数组,使用 toArray(String[]::new) 是一种直观且有效的方法。


Q4. 以下代码的输出是什么?

  1. 编译错误
  2. B
  3. A
  4. null
 

答案: B

解释: toArray(new String[0]) 方法将列表转换为正确的数组。arr[1] 对应第二个元素,即“B”。


Q5. 哪个 toArray() 方法变体在转换时确保类型安全?

  1. toArray()
  2. toArray(Object[])
  3. toArray(new String[0])
  4. toArray(String.class)
 

答案:C

解释: 通过传递数组类型,例如 new String[0],可以保持编译时类型安全并避免类型转换,从而确保结果类型正确。