一、使用Arrays类的asList方法
Java提供了Arrays类的asList方法,可以将数组转换成列表。这个方法的参数为数组。该方法返回的List集合是Arrays内部类ArrayList,不是Java.util包下的ArrayList,因此不能进行添加和删除元素。
Integer[] arr = new Integer[]{1, 2, 3}; Listlist = Arrays.asList(arr); System.out.println(list);
输出结果为:[1, 2, 3]
当使用基本数据类型(如int)时,使用Arrays.asList()会返回List
int[] arr = new int[]{1, 2, 3}; Listlist = 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}; Listlist = new ArrayList<>(); Collections.addAll(list, arr); System.out.println(list);
输出结果为:[1, 2, 3]
三、使用循环遍历
如果不想使用Java提供的类库,也可以通过循环遍历的方式将数组转换为列表。需要先创建空列表,然后通过循环将数组元素添加到列表中。
Integer[] arr = new Integer[]{1, 2, 3}; Listlist = 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}; Listlist = Arrays.asList(arr); list.add(4);
要转换成ArrayList,可以使用如下代码:
Integer[] arr = new Integer[]{1, 2, 3}; Listlist = new ArrayList<>(Arrays.asList(arr)); list.add(4); System.out.println(list);
输出结果为:[1, 2, 3, 4]