您的位置:

Java中将数组转换为List的方法

在Java编程中我们经常会遇到将一个数组转换为List集合的需求,这时候我们可以使用Java提供的Arrays.asList()方法实现数组转换为List集合,也可以使用Stream API来实现。下面将从多个方面来详细阐述如何实现Java中将数组转换为List的方法。

一、使用Arrays.asList()方法

Arrays.asList()方法可以将数组转换为List集合,它接受一个数组作为参数,并返回一个List集合。代码示例如下:

    String[] array = {"apple", "banana", "orange"};
    List list = Arrays.asList(array);

  

上述代码将字符串数组array转换为List集合list。

需要注意的是,Arrays.asList()方法返回的是一个固定大小的List,也就是说它不能执行添加或删除操作,并且它不支持add()、remove()、clear()等操作,否则会抛出UnsupportedOperationException异常。如果需要执行添加或删除操作,我们可以创建一个新的ArrayList,然后将数组中的元素一个一个添加进去,示例代码如下:

    String[] array = {"apple", "banana", "orange"};
    List list = new ArrayList<>(Arrays.asList(array));

  

上述代码将字符串数组array转换为一个可进行添加或删除操作的ArrayList。

二、使用Stream API

Java 8中引入了Stream API,我们可以使用Stream API来将数组转换为List集合。示例代码如下:

    String[] array = {"apple", "banana", "orange"};
    List list = Stream.of(array).collect(Collectors.toList());

  

上述代码中,我们使用Stream.of()方法将数组转换为Stream流,然后通过collect()方法将Stream流转换为List集合。

需要注意的是,Stream.of()方法不支持接受基本数据类型的参数,如果需要将基本数据类型的数组转换为List集合,可以借助于IntStream、LongStream、DoubleStream等基本类型流,示例代码如下:

    int[] array = {1, 2, 3};
    List list = IntStream.of(array).boxed().collect(Collectors.toList());

  

上述代码中,我们使用IntStream.of()方法将int类型的数组转换为IntStream流,然后使用boxed()方法将IntStream流转换为Stream 流,最后使用collect()方法将Stream 流转换为List集合。

三、使用Guava库

Guava是Google的一个Java库,其中包含了许多实用的Java工具类,在集合操作方面也提供了很多便利的API。我们可以使用Guava库中的Lists.newArrayList()方法将数组转换为List集合,示例代码如下:

    String[] array = {"apple", "banana", "orange"};
    List list = Lists.newArrayList(array);

  

上述代码中,我们使用Lists.newArrayList()方法将字符串数组array转换为List集合。

需要注意的是,Guava库的Lists.newArrayList()方法与Arrays.asList()方法一样,返回的是一个固定大小的List,也就是说它不能执行添加或删除操作,并且它不支持add()、remove()、clear()等操作,否则会抛出UnsupportedOperationException异常。如果需要执行添加或删除操作,我们可以创建一个新的ArrayList,然后将数组中的元素一个一个添加进去。

四、使用Apache Commons库

Apache Commons是一个开源的Java库,其中包含了大量的实用的Java工具类,在集合操作方面也提供了很多便利的API。我们可以使用Apache Commons库中的Arrays.asList()方法将数组转换为List集合,示例代码如下:

    String[] array = {"apple", "banana", "orange"};
    List list = new ArrayList<>(Arrays.asList(array));

  

上述代码中,我们使用Arrays.asList()方法将字符串数组array转换为List集合,然后使用ArrayList构造方法创建了一个新的ArrayList集合。

需要注意的是,Apache Commons的Arrays.asList()方法与Java中的Arrays.asList()方法一样,返回的是一个固定大小的List,也就是说它不能执行添加或删除操作,并且它不支持add()、remove()、clear()等操作,否则会抛出UnsupportedOperationException异常。如果需要执行添加或删除操作,我们可以创建一个新的ArrayList,然后将数组中的元素一个一个添加进去。

总结

本文介绍了Java中将数组转换为List的多种方法,包括使用Java中的Arrays.asList()方法、使用Stream API、使用Guava库以及使用Apache Commons库。需要注意的是,Arrays.asList()方法返回的是一个固定大小的List,不能执行添加或删除操作,并且它不支持add()、remove()、clear()等操作,否则会抛出UnsupportedOperationException异常。如果需要执行添加或删除操作,我们可以创建一个新的ArrayList,然后将数组中的元素一个一个添加进去。