在Java中,数组与集合是两种不同的数据结构。数组是定长的,一旦长度定义好后就不能再进行扩容或缩容;而集合则可以动态地增加或减少元素,非常方便。但有时,我们需要将数组转换成List集合,比如在使用一些API时,这种操作会变得十分必要。
一、将数组转换成List集合的两种方法
Java提供了两种方式可以将数组转换成List集合,一种是使用Arrays类提供的asList()方法,另一种是通过循环遍历数组,逐一添加到List中。
1、使用Arrays类提供的asList()方法
Integer[] arr = {1, 2, 3, 4, 5}; List<Integer> list = Arrays.asList(arr); System.out.println(list); // [1, 2, 3, 4, 5]
首先,我们需要创建一个Integer类型的数组arr,其中包含了5个元素。使用Arrays类提供的asList()方法将该数组转换成List集合,最后输出了转换后的结果。
需要注意的是,使用asList()方法返回的List是一个不可变的List。意思是说,如果我们试图添加或删除元素都会抛出UnsupportedOperationException异常。该方法底层使用的是数组,所以会对数组进行直接的操作。
2、通过循环遍历数组添加到List中
Integer[] arr = {1, 2, 3, 4, 5}; List<Integer> list = new ArrayList<>(); for (Integer i : arr) { list.add(i); } System.out.println(list); // [1, 2, 3, 4, 5]
上述代码通过循环遍历数组arr,逐一将其添加到List集合中,最后输出了转换后的结果。与asList()方法不同,这种方式转换的List是可变的。
二、数组转换成List的注意事项
1、基本类型数组的转换
如上面的示例所示,我们演示的都是将Integer类型的数组转换成List集合。对于基本类型数组,操作稍微有些区别。
int[] arr = {1, 2, 3, 4, 5}; List<Integer> list = new ArrayList<>(); for (int i : arr) { list.add(i); } System.out.println(list); // [1, 2, 3, 4, 5]
由于泛型不能接受基本类型,所以我们需要将基本类型的数组转换成对应的包装类型,如示例中将int数组转换成了Integer类型的List集合。
2、对转化后的List集合进行修改
使用asList()方法转换的List是不可变的,尝试对其添加或删除元素都会引发异常。以下示例代码中,试图向asList()转化后的List集合中添加元素,运行时会抛出UnsupportedOperationException异常。
String[] arr = {"a", "b", "c", "d", "e"}; List<String> list = Arrays.asList(arr); list.add("f");
而使用循环遍历数组转换成的List则是可变的,我们可以随意的对其添加、删除元素。
三、小结
本文详细介绍了Java中将数组转换成List集合的方法以及注意事项。通过本文的讲解,相信大家能够轻松的应用这两种转换方法,并在实际编程中运用到。