欢迎访问宙启技术站
智能推送

Java函数实现将数组转换为List集合的方法介绍

发布时间:2023-06-30 08:40:52

在Java中,可以使用以下几种方法将数组转换为List集合:

方法一:使用Arrays类的asList()方法

Arrays类是Java提供的一个操作数组的工具类,其中的asList()方法可以将数组转换为List集合。

int[] array = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(array);

上述代码将int类型的数组array转换为了Integer类型的List集合list。需要注意的是,asList()方法的参数必须是一个引用类型数组,而不能是基本类型数组。

方法二:使用Collections类的addAll()方法

Collections类是Java提供的一个操作集合的工具类,其中的addAll()方法可以将数组中的元素逐个添加到List集合中。

int[] array = {1, 2, 3, 4, 5};
List<Integer> list = new ArrayList<>();
Collections.addAll(list, array);

上述代码将int类型的数组array中的元素逐个添加到了Integer类型的List集合list中。

方法三:使用循环遍历数组

如果不想使用工具类,还可以使用循环遍历数组的方式将数组转换为List集合。

int[] array = {1, 2, 3, 4, 5};
List<Integer> list = new ArrayList<>();
for (int i = 0; i < array.length; i++) {
    list.add(array[i]);
}

上述代码通过循环遍历数组,逐个将数组中的元素添加到了List集合中。

需要注意的是,以上三种方法在转换为List集合后,对数组进行的修改会直接反映到List集合中,同样,对List集合的修改也会反映到原始数组中。这是因为数组和List集合共享同一份数据。

另外,在使用asList()方法将数组转换为List集合时,需要注意一些特殊情况。由于asList()方法的参数是一个可变参数,因此如果传入的是一个基本类型数组,会将整个数组作为List集合的一个元素,而不是将数组中的元素逐个添加到List集合中。例如:

int[] array = {1, 2, 3, 4, 5};
List<int[]> list = Arrays.asList(array);
System.out.println(list);  // [[I@74a14482]

上述代码输出的是数组的内存地址,而不是数组中的元素。如果需要将基本类型数组转换为List集合,可以使用Java8引入的Stream流进行转换:

int[] array = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
System.out.println(list);  // [1, 2, 3, 4, 5]

上述代码使用Stream流的boxed()方法将int类型的流转换为Integer类型的流,然后使用collect()方法将流中的元素收集到一个List集合中。

总结起来,将数组转换为List集合的方法有以下几种:

1. 使用Arrays类的asList()方法。

2. 使用Collections类的addAll()方法。

3. 使用循环遍历数组的方式。

4. 使用Stream流进行转换。

其中,前三种方法可以将引用类型的数组转换为List集合,而第四种方法可以将基本类型的数组转换为List集合。