1. 概述
在Java中,列表(Lists) 和 数组(Arrays) 是两种常见的存储对象的方式。在需要存储和操作数据的项目中,无论是*列表(Lists)还是数组(Arrays)*都允许我们在程序执行期间保存数据。
*本教程将解释如何在Java中将List
*2. 使用List.toArray()方法*
List接口提供了toArray()方法,该方法返回一个包含所有列表元素的Array对象。
让我们看看如何使用toArray()方法将List
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
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 API将List转换为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
如常,代码示例可于GitHub获取。