您的位置:

Java中List转数组的方法

一、List转为基本类型数组

使用Java 8中添加的Stream API可以非常方便地将List转为基本类型数组。以下是将List 转为int[]的示例代码:

List list = Arrays.asList(1, 2, 3);
int[] array = list.stream().mapToInt(Integer::intValue).toArray();

  

在这个例子中,将List转为IntStream,然后通过IntStream的toArray()方法得到int[]数组。

同理,将List 转为long[]也可以使用相同的方法:

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

  

二、List转为Object类型数组

如果List中的元素是Object类型,可以使用List的toArray()方法将其转为Object类型数组。以下是示例代码:

List list = Arrays.asList(new Object(), new Object(), new Object());
Object[] array = list.toArray();


如果想要将List中的元素按照某种规则转为Object类型数组的话,可以使用Java 8中添加的Stream API。以下是示例代码:

List list = Arrays.asList("a", "b", "c");
String[] array = list.stream().toArray(String[]::new);

    

在这个例子中,将List转为Stream,然后通过Stream的toArray()方法得到String[]数组。

三、List转为特定类型数组

如果List中的元素是特定类型,可以使用List的toArray()方法将其转为特定类型数组。以下是示例代码:

List list = Arrays.asList("a", "b", "c");
String[] array = list.toArray(new String[list.size()]);

    

在这个例子中,将List转为String[]数组。

如果想要将List中的元素按照某种规则转为特定类型数组的话,可以使用Java 8中添加的Stream API。以下是示例代码:

List list = Arrays.asList(1, 2, 3);
String[] array = list.stream().map(i -> "Number " + i).toArray(String[]::new);

    

在这个例子中,将List转为Stream,然后通过Stream的map()方法将元素转为String类型,最后通过Stream的toArray()方法得到String[]数组。

四、List转为基本类型数组,避免装箱拆箱操作

由于自动装箱和拆箱操作十分耗费性能,可以使用第三方库fastutil中提供的方法接口将List转为基本类型数组。以下是将List转为int[]的示例代码:

List list = Arrays.asList(1, 2, 3);
int[] array = list.stream().mapToInt(Integer::intValue).toArray();

    

五、List转为特定类型数组,避免装箱拆箱操作

同样地,使用fastutil中提供的方法接口也可以将List转为特定类型数组,避免装箱拆箱操作。以下是示例代码:

List list = Arrays.asList("a", "b", "c");
String[] array = list.stream().toArray(String[]::new);

    

六、异常处理

在将List转为数组的过程中,由于类型转换错误等原因,可能会抛出Unchecked Exception,因此应该进行异常处理。以下是示例代码:

List list = Arrays.asList("a", "b", "c");
try {
    String[] array = list.stream().toArray(String[]::new);
} catch (ArrayStoreException e) {
    System.out.println("类型转换错误:" + e.getMessage());
    // 处理异常
}

    

七、总结

本文分别介绍了Java中将List转为基本类型数组、Object类型数组、特定类型数组的方法,并提供了使用第三方库fastutil中提供的方法接口进行转换的方法。同时,本文还介绍了异常处理的方法。

文章目录
顶部