Arrays.asList()转换后不可变,2. ArrayList构造器可创建可变列表,3. Collections.addAll()性能优,4. Stream API适合函数式编程,按需选择方法。
在Java中将数组转换为List集合有多种方式,常用的方法包括使用 Arrays.asList()、Collections.addAll() 以及通过 Java 8的Stream。下面介绍每种方法的具体用法和注意事项。
1. 使用 Arrays.asList() 方法
Arrays.asList() 是最常见的方式,它将数组直接转换为一个固定大小的List。
示例代码:
String[] array = {"apple", "banana", "orange"};
List list = Arrays.asList(array);
System.out.println(list); // 输出: [apple, banana, orange]
注意: 返回的List是固定大小的,不能添加或删除元素(不支持 add/remove 操作),否则会抛出 UnsupportedOperationException。
2. 使用 ArrayList 构造器 + Arrays.asList()
如果需要一个可修改的List,可以将 Arrays.asList() 的结果作为参数传递给 ArrayList 构造函数。
示例代码:
String[] array = {"apple", "banana", "orange"};
List list = new ArrayList<>(Arrays.asList(array));
list.add("grape"); // 正常添加
System.out.println(list); // 输出: [apple, banana, orange, grape]
这种方式创建的是一个独立的、可变的ArrayList。
3. 使用 Collections.addAll()
手动创建一个List,然后使用 Collections.addAll() 将数组元素添加进去。
示例代码:
String[] array = {"apple", "banana", "orange"};
List list = new ArrayList<>();
Collections.addAll(list, array);
System.out.println(list); // 输出: [apple, banana, orange]
这种方法性能较好,适合在需要高效添加大量元素时使用。
4. 使用 Java 8 Stream API
利用Stream可以更灵活地处理数组转List,尤其适用于需要过滤或映射的场景。
示例代码:
String[] array = {"apple", "banana", "orange"};
List list = Arrays.stream(array)
.collect(Collectors.toList());
System.out.println(list); // 输出: [apple, banana, orange]
这种方式返回的List也是可变的,且
代码风格更现代,适合函数式编程习惯。
基本上就这些。根据是否需要修改List、性能要求或代码风格选择合适的方法即可。Arrays.asList() 最简单但受限,搭配ArrayList构造器是最实用的做法之一。








