1. 概述

在Java中,列表(Lists)数组(Arrays) 是两种常见的存储对象的方式。在需要存储和操作数据的项目中,无论是*列表(Lists)还是数组(Arrays)*都允许我们在程序执行期间保存数据。

*本教程将解释如何在Java中将List对象转换为Long[] Array*

*2. 使用List.toArray()方法*

List接口提供了toArray()方法,该方法返回一个包含所有列表元素的Array对象。

让我们看看如何使用toArray()方法将List对象转换为Java中的Long[] Array

List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
Long[] array = new Long[list.size()];
array = list.toArray(array);

在上面的例子中,我们根据要转换的列表(List)大小创建了一个新的Long值数组。我们也可以传递一个空数组,将内存分配委托给JVM:

List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
Long[] array = new Long[0];
array = list.toArray(array);

3. 使用Guava库

Guava库提供了Longs.toArray()方法,该方法将Long值的集合按照相同的顺序转换为Long数组。

下面展示如何使用Guava的Longs.toArray()方法将List对象转换为Long[] Array

List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
long[] array = Longs.toArray(list);

需要注意的是,Guava的Longs.toArray()方法如果传入的Collection或其任何元素为null,会抛出NullPointerException

*4. 使用Stream.mapToLong()方法*

Java 8允许使用Stream APIList转换为Array。首先,我们需要使用List.stream()方法将所需的列表转换为流。其次,我们将应用Stream.mapToLong()方法以返回一个LongStream。最后,我们将使用Stream.toArray()方法返回包含来自流的Long元素的Array

现在让我们看看如何以两种不同的方式实现*mapToLong()*方法。

首先,使用lambda表达式

List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
long[] array = list.stream().mapToLong(l -> l).toArray();

其次,使用方法引用

List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
long[] array = list.stream().mapToLong(Long::longValue).toArray();

5. 总结

本文中,我们学习了如何使用三种方法在Java中将List对象转换为Long[] Array。第一种方法使用了*List.toArray()方法,第二种方法使用了Guava的Longs.toArray()方法,最后我们利用Java 8的Stream API通过mapToLong()*方法实现了转换。

如常,代码示例可于GitHub获取。