您的位置:

Java中数组转列表的方法

一、使用Arrays类的asList方法

Java提供了Arrays类的asList方法,可以将数组转换成列表。这个方法的参数为数组。该方法返回的List集合是Arrays内部类ArrayList,不是Java.util包下的ArrayList,因此不能进行添加和删除元素。

  Integer[] arr = new Integer[]{1, 2, 3};
  List list = Arrays.asList(arr);
  System.out.println(list);

  

输出结果为:[1, 2, 3]

当使用基本数据类型(如int)时,使用Arrays.asList()会返回List ,而不是List 。可以通过IntStream类将int数组转为List

  int[] arr = new int[]{1, 2, 3};
  List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
  System.out.println(list);

  

输出结果为:[1, 2, 3]

二、使用Collections.addAll方法

另一个将数组转换为列表的方法是使用Collections.addAll()。该方法需要先创建空列表,再通过addAll方法将数组添加到列表中。

  Integer[] arr = new Integer[]{1, 2, 3};
  List list = new ArrayList<>();
  Collections.addAll(list, arr);
  System.out.println(list);

  

输出结果为:[1, 2, 3]

三、使用循环遍历

如果不想使用Java提供的类库,也可以通过循环遍历的方式将数组转换为列表。需要先创建空列表,然后通过循环将数组元素添加到列表中。

  Integer[] arr = new Integer[]{1, 2, 3};
  List list = new ArrayList<>();
  for (int i = 0; i < arr.length; i++) {
      list.add(arr[i]);
  }
  System.out.println(list);

  

输出结果为:[1, 2, 3]

四、注意事项

需要注意的是,使用Arrays.asList()和Collections.addAll()方法无法增加或减少List集合中元素的个数。如果要进行添加/删除操作,需要转换为可变长的ArrayList集合。

如下代码会出现UnsupportedOperationException异常:

  Integer[] arr = new Integer[]{1, 2, 3};
  List list = Arrays.asList(arr);
  list.add(4);

  

要转换成ArrayList,可以使用如下代码:

  Integer[] arr = new Integer[]{1, 2, 3};
  List list = new ArrayList<>(Arrays.asList(arr));
  list.add(4);
  System.out.println(list);

  

输出结果为:[1, 2, 3, 4]