您的位置:

Java List转Array的方法

在 Java 开发中,我们经常需要将 List 转换为数组 Array,使用到的工具类是 Arrays。

一、选取要转换的 List

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

以上是一个简单的 List 示例,包含三个字符串元素。

二、使用 toArray() 方法转换为数组

Object[] objects = list.toArray();

toArray() 方法会将 List 转化为 Object 类型的数组,这种情况下将失去泛型的意义。如果确保 List 内含有相同类型元素,则可以将 Object 类型强制转换为对应类型的数组,如下所示:

String[] strings = list.toArray(new String[0]);

如果不传递任何参数,则 toArray() 方法返回的是 Object 类型的数组,将无法进行强制类型转换。因此,需要传递一个初始数组,同时在需要的时候进行扩展,如下所示:

String[] strings = list.toArray(new String[list.size()]);

三、使用 Stream API 转换为数组

使用 Java 8 中的 Stream API 可以更加简便地将 List 转换为数组,如下所示:

String[] strings = list.stream().toArray(String[]::new);

使用 Stream API 也可以进行筛选、过滤、排序等操作。

四、使用 List 转化为 IntStream、LongStream 或 DoubleStream

对于包含 int、long 或 double 类型元素的 List,也可以通过 mapToInt()、mapToLong() 或 mapToDouble() 方法将其转换为对应的 Stream,然后使用 toArray() 方法将其转换为数组。

List<Integer> integerList = Arrays.asList(1, 2, 3);
int[] ints = integerList.stream().mapToInt(Integer::intValue).toArray();

mapToInt() 方法将 Integer 对象转换为 int 类型的 Stream,然后使用 toArray() 方法将其转换为 int 数组。

五、小结

以上就是几种将 List 转换为数组的方法,使用 toArray() 方法是最常见的方式,使用 Stream API 能够更加简便地实现转换,对于包含基本类型元素的 List,可以通过 mapToInt()、mapToLong() 或 mapToDouble() 方法将其转换为对应类型的 Stream,再使用 toArray() 方法进行转换。