Java 中数组转集合的方法
Java 中数组转集合的方法
1. 对于对象引用数组
1.1. 使用 Arrays.asList()
方法
这是最常用的方法,适用于对象数组(非基本类型数组):
String[] array = {"a", "b", "c"};
List<String> list = Arrays.asList(array); //不可变,同时修改会反映到原数组
List<String> list2 = new ArrayList(list); //可变
注意:
• 返回的 List 是固定大小的,不能添加或删除元素
• 对返回列表的修改会反映到原数组上
1.2. 使用 Collections.addAll()
方法
String[] array = {"a", "b", "c"};
List<String> list = new ArrayList<>();
Collections.addAll(list, array);
这种方法创建的 List 是可变的。
1.3. 使用 Java 8 Stream API
String[] array = {"a", "b", "c"};
List<String> list = Arrays.stream(array).collect(Collectors.toList());
或者更简洁的写法:
List<String> list = Stream.of(array).collect(Collectors.toList());
1.4. 使用 List.of()
(Java 9+)
Java 9 引入了 List.of()
方法:
String[] array = {"a", "b", "c"};
List<String> list = List.of(array);
注意:返回的 List 是不可变的。
2. 对于基本类型数组
基本类型数组需要特殊处理,因为 Arrays.asList()
不能正确处理基本类型数组:
int[] intArray = {1, 2, 3};
List<Integer> list = Arrays.stream(intArray)
.boxed()
.collect(Collectors.toList());
3. 手动遍历添加
String[] array = {"a", "b", "c"};
List<String> list = new ArrayList<>();
for (String item : array) {
list.add(item);
}
选择建议
• 如果需要可变集合:使用 new ArrayList<>(Arrays.asList(array))
或 Collections.addAll()
• 如果不需要修改集合:使用 Arrays.asList()
或 List.of()
• 对于基本类型数组:使用 Stream API 的 boxed()
方法
记住,数组和集合之间的转换可能会影响性能,特别是在处理大量数据时。