Java中数组转List常用四种方法:1. Arrays.asList()生成固定大小List;2. new ArrayList(Arrays.asList())获得可变List;3. Stream.collect(Collectors.toList())适合复杂操作且可变;4. 基本类型数组需用Stream.boxed()转换为包装类List。

Java中将数组转换为List,常用的方法有几种,根据不同的需求选择合适的方式。最常见的是使用 Arrays.asList() 和 Java 8 引入的 Stream 方式。
1. 使用 Arrays.asList()(适用于固定大小的List)
这是最简单直接的方法,适合基本类型包装类或对象数组。
注意:这种方式生成的List是固定大小的,不能添加或删除元素。示例:
String[] array = {"a", "b", "c"};
List<String> list = Arrays.asList(array);
也可以简写为:
立即学习“Java免费学习笔记(深入)”;
List<String> list = Arrays.asList("a", "b", "c");
2. 使用 new ArrayList(Arrays.asList())(可变List)
如果需要对List进行增删操作,可以将其包装成一个真正的 ArrayList。
示例:
String[] array = {"a", "b", "c"};
List<String> list = new ArrayList<>(Arrays.asList(array));
现在 list 可以调用 add()、remove() 等方法。
3. 使用 Java 8 Stream(推荐用于复杂操作)
利用 Stream 可以更灵活地处理数组转List,尤其是需要过滤或映射时。
示例:
String[] array = {"a", "b", "c"};
List<String> list = Arrays.stream(array).collect(Collectors.toList());
这种方式生成的List是可变的(具体取决于 Collectors 中的方法,如 toList() 通常是可变的)。
4. 基本类型数组的注意事项
如果数组是基本类型(如 int[]),Arrays.asList() 会把整个数组当作一个对象处理,不会拆开。
错误示例:
int[] nums = {1, 2, 3};
List<int[]> list = Arrays.asList(nums); // 得到的是一个元素为 int[] 的List
正确做法是使用 Stream:
int[] nums = {1, 2, 3};
List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toList());
基本上就这些。根据数组类型和是否需要修改List来选择合适的方法。不复杂但容易忽略细节,特别是基本类型和可变性问题。










