java数组转list

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 list = Arrays.asList(array);

也可以简写为:

List list = Arrays.asList("a", "b", "c");

2. 使用 new ArrayList(Arrays.asList())(可变List)

如果需要对List进行增删操作,可以将其包装成一个真正的 ArrayList。

示例:

String[] array = {"a", "b", "c"};
List list = new ArrayList(Arrays.asList(array));

现在 list 可以调用 add()、remove() 等方法。

3. 使用 Java 8 Stream(推荐用于复杂操作)

利用 Stream 可以更灵活地处理数组转List,尤其是需要过滤或映射时。

示例:

String[] array = {"a", "b", "c"};
List list = Arrays.stream(array).collect(Collectors.toList());

这种方式生成的List是可变的(具体取决于 Collectors 中的方法,如 toList() 通常是可变的)。

4. 基本类型数组的注意事项

如果数组是基本类型(如 int[]),Arrays.asList() 会把整个数组当作一个对象处理,不会拆开。

错误示例:

int[] nums = {1, 2, 3};
List list = Arrays.asList(nums); // 得到的是一个元素为 int[] 的List

正确做法是使用 Stream:

int[] nums = {1, 2, 3};
List list = Arrays.stream(nums).boxed().collect(Collectors.toList());

基本上就这些。根据数组类型和是否需要修改List来选择合适的方法。不复杂但容易忽略细节,特别是基本类型和可变性问题。