在java编程中,经常需要将数组转换为List。List是Java集合框架中的一个重要接口,可以让开发人员轻松地操作和管理数据。
一、使用Arrays类中的asList()方法
Listlist = Arrays.asList(array);
这种方法是Java中最常见的数组转List的方法。这个方法会返回一个List,但这个List的大小是固定的,并且不能增加或删除元素。如果试图通过这个List的add()或remove()方法来添加或删除元素,就会抛出UnsupportedOperationException异常。
这是因为asList()方法返回的List是由原数组支持的:对这个List元素的操作实际上就是对原数组所做的操作。
如果需要使用List的add()或remove()方法,可以使用以下语句创建一个新的ArrayList:
Listlist = new ArrayList (Arrays.asList(array));
二、使用Stream API
Java 8 引入了Stream API,可以通过Arrays类中的stream()方法将数组转换为Stream,再使用collect()方法将Stream转换为List。
String[] array = {"apple", "banana", "orange"}; Listlist = 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"}; Listlist = 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"}; Listlist = List.of(array);
这种方法最简单和最便捷,但是这种方式只是 Java 9 的特性,不适用于 Java 8 或以下的版本。
五、总结
在Java中,有多种方式将数组转换为List。每种方法都有不同的适用场景,在不同的场景中选择不同的方法可以更好地解决问题。
Java中数组转List的常见方式: Listlist = Arrays.asList(array); List list = new ArrayList (Arrays.asList(array)); List list = Arrays.stream(array).collect(Collectors.toList()); List list = List.of(array);