📅  最后修改于: 2023-12-03 14:43:02.082000             🧑  作者: Mango
在Java中,经常会遇到将List或集合转换为数组的情况,而Guava的Longs
类提供toArray
方法可以非常方便地将List
Longs
类属于Guava库中的一个工具类,它提供了一些针对long
类型的操作方法。其中toArray
方法的作用是将List<Long>
转换为long[]
类型的数组。
public static long[] toArray(Collection<? extends Number> collection) {
if (collection instanceof Longs.LongsAsList) {
return ((Longs.LongsAsList) collection).toLongArray();
}
Object[] boxedArray = collection.toArray();
int len = boxedArray.length;
long[] array = new long[len];
for (int i = 0; i < len; ++i) {
// java.lang.NullPointerException: null
// long value = ((Number) Preconditions.checkNotNull(boxedArray[i])).longValue();
array[i] = ((Number) boxedArray[i]).longValue();
}
return array;
}
可以看到,toArray
方法接收一个继承自Number
的集合类型,返回一个long
类型的数组。如果传入的集合本身就是LongsAsList
类型,方法直接调用它的toLongArray
方法,否则通过循环遍历集合元素获取每个元素的long
值并赋值到数组中返回。
下面提供一个简单的示例来演示如何使用Longs.toArray()
方法。
import com.google.common.primitives.Longs;
import java.util.ArrayList;
import java.util.List;
public class LongsDemo {
public static void main(String[] args) {
List<Long> longs = new ArrayList<>();
longs.add(1L);
longs.add(2L);
longs.add(3L);
long[] longArray = Longs.toArray(longs);
for (long num : longArray) {
System.out.println(num);
}
}
}
上述示例中,我们先构造一个包含三个Long类型元素的List,然后调用Longs.toArray()
方法将其转化为long类型的数组,并最终输出数组中的元素。
控制台输出:
1
2
3
在Java中将List