您的位置:

Java数组转List集合

在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集合的方法以及注意事项。通过本文的讲解,相信大家能够轻松的应用这两种转换方法,并在实际编程中运用到。