您的位置:

Java数组转List方法详解

在java编程中,经常需要将数组转换为List。List是Java集合框架中的一个重要接口,可以让开发人员轻松地操作和管理数据。

一、使用Arrays类中的asList()方法

List list = Arrays.asList(array);

  

这种方法是Java中最常见的数组转List的方法。这个方法会返回一个List,但这个List的大小是固定的,并且不能增加或删除元素。如果试图通过这个List的add()或remove()方法来添加或删除元素,就会抛出UnsupportedOperationException异常。

这是因为asList()方法返回的List是由原数组支持的:对这个List元素的操作实际上就是对原数组所做的操作。

如果需要使用List的add()或remove()方法,可以使用以下语句创建一个新的ArrayList:

List list = new ArrayList
   (Arrays.asList(array));

   
  

二、使用Stream API

Java 8 引入了Stream API,可以通过Arrays类中的stream()方法将数组转换为Stream,再使用collect()方法将Stream转换为List。

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

  

这种方法是Java 8 中最常使用的数组转List的方法。相对于asList()方法,这种方法返回的是一个基于数组的新List,可以使用List的add()和remove()等方法添加和删除元素。

三、使用Collections.addAll()方法

Java中的Collections类提供了一个addAll()方法,可以将数组元素添加到一个已存在的List中。

String[] array = {"apple", "banana", "orange"};
List list = new ArrayList
   ();
Collections.addAll(list, array);

   
  

这种方法是一种比较显式的、手工的将数组转换为 List 的方式。Collections.addAll()实际上是将数组中的元素逐个添加到一个已存在的List中。

四、使用Java 9 中的List.of()方法

Java 9 引入了一个新的List.of()方法,可以非常方便地将数组转换为List。将给定的元素转换为不可变的列表(由此可以知道,这个方法返回的 List 的大小是固定的,且不支持 add() 和 remove() 等方法)。

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

  

这种方法最简单和最便捷,但是这种方式只是 Java 9 的特性,不适用于 Java 8 或以下的版本。

五、总结

在Java中,有多种方式将数组转换为List。每种方法都有不同的适用场景,在不同的场景中选择不同的方法可以更好地解决问题。

Java中数组转List的常见方式:
List list = Arrays.asList(array);
List
    list = new ArrayList
    (Arrays.asList(array));
List
      list = Arrays.stream(array).collect(Collectors.toList());
List
       list = List.of(array);