一、Java中数组转换为List的基本使用方法
Java中提供了不少将数组转成List的方法,最常用的是Arrays.asList()方法,它可以把数组转成List集合对象,基本语法如下:
List<TYPE> list = Arrays.asList(array);
其中,TYPE表示数组元素类型,array表示提供的数组,list即为转换后得到的List对象。
值得注意的是:由于Arrays.asList()方法底层数据的存储结构仍然是数组,所以在转换后的List对象使用一些List特性时可能会出现不同的结果。
二、Java中数组转换为List的细节问题
Arrays.asList()方法有一些需要注意的地方:
1、基本数据类型数组在使用Arrays.asList()方法转换时需要使用到包装类,例如:
int[] array = {1, 2, 3, 4, 5}; List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
2、由于Arrays.asList()方法底层数据的存储结构仍然是数组,所以在转换后的List对象使用一些List特性时可能会出现不同的结果。
例如:
String[] array = {"a", "b", "c"}; List<String> list = Arrays.asList(array); list.set(0, "aa"); System.out.println(Arrays.toString(array)); //输出结果:["aa", "b", "c"]
由于Arrays.asList()方法底层数据的存储结构仍然是数组,所以在修改转换后的List对象时,原数组也会随之被修改。
三、Java中数组转换为List的其他方法
除了Arrays.asList()方法外,Java中还提供了其他数组转换为List的方法,例如:
1、使用Collections.addAll()方法:
String[] array = {"a", "b", "c"}; List<String> list = new ArrayList<>(); Collections.addAll(list, array);
2、使用Arrays.stream()方法:
String[] array = {"a", "b", "c"}; List<String> list = Arrays.stream(array).collect(Collectors.toList());
多数情况下,使用Arrays.asList()方法已经可以满足需求,但其他方法在特定场景下也有其优势。
四、Java中数组转换为List的应用场景
数组转换为List的常见应用场景有:
1、数组转换为List用于方法的参数传递
例如:
public void method(List<String> list) { //TODO } String[] array = {"a", "b", "c"}; method(Arrays.asList(array));
2、数组转换为List用于集合操作
例如:
String[] array = {"a", "b", "c"}; List<String> list = Arrays.asList(array); list.forEach(System.out::println);
五、Java中数组转换为List的示例代码
public class ArrayToListDemo { public static void main(String[] args) { //使用Arrays.asList()方法 Integer[] intArray = {1, 2, 3, 4, 5}; List<Integer> intList = Arrays.asList(intArray); System.out.println(intList); String[] strArray = {"a", "b", "c"}; List<String> strList = Arrays.asList(strArray); System.out.println(strList); //使用Collections.addAll()方法 List<String> list1 = new ArrayList<>(); Collections.addAll(list1, strArray); System.out.println(list1); //使用Arrays.stream()方法 List<String> list2 = Arrays.stream(strArray).collect(Collectors.toList()); System.out.println(list2); } }