您的位置:

Java 数组转换为 List

在 Java 编程中,我们经常需要把数组转换为 List。本文将从多个方面详细阐述如何将数组转换为 List,包括使用 Arrays.asList() 方法、手动将数组转换为 List、使用 Java 8 中的 Stream API 以及使用 Guava 库等方法。

一、使用 Arrays.asList() 方法

Arrays.asList() 方法是将数组转换为 List 最常见的方法。它可以接受一个数组作为参数,返回一个 List。

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

在使用 Arrays.asList() 方法时,需要注意以下几点:

1. 数组和 List 同时被修改

    String[] strArray = {"Hello", "World", "!"};
    List<String> strList = Arrays.asList(strArray);
    strList.set(1, "Java");
    // strArray[1] 也被修改为 "Java"

2. 只能对数组进行基础数据类型的转换

    // 编译错误:Type mismatch: cannot convert from List<int[]> to List<Integer>
    int[][] intArray2D = {{1, 2}, {3, 4}};
    List<Integer> intList2D = Arrays.asList(intArray2D);

二、手动将数组转换为 List

除了使用 Arrays.asList() 方法外,还可以手动将数组转换为 List。这种方法比较简单,但是需要注意一些细节问题。

    Integer[] intArray = {1, 2, 3, 4, 5};
    List<Integer> intList = new ArrayList<>(Arrays.asList(intArray));

需要注意的是,这种方法只适用于数组元素为对象类型的情况,如果是基础数据类型的数组,需要进行装箱操作(boxing)。

三、使用 Java 8 中的 Stream API

Java 8 中引入了 Stream API,它提供了一种更加简洁和便利的方法来处理集合操作,包括将数组转换为 List。

    Integer[] intArray = {1, 2, 3, 4, 5};
    List<Integer> intList = Arrays.stream(intArray).collect(Collectors.toList());

需要注意的是,使用 Stream API 转换数组时,需要使用 java.util.stream.Collectors 类以及 java.util.Arrays 类。

四、使用 Guava 库

Guava 是一个 Google 提供的 Java 工具库,它提供了丰富的工具类和 API,其中包括了将数组转换为 List 的方法。

    Integer[] intArray = {1, 2, 3, 4, 5};
    List<Integer> intList = Lists.newArrayList(intArray);

需要注意的是,这种方法需要引入 guava 库。

五、总结

本文详细介绍了 Java 中将数组转换为 List 的多种方法,包括使用 Arrays.asList() 方法、手动将数组转换为 List、使用 Java 8 中的 Stream API 以及使用 Guava 库等方法。每种方法都有其优缺点,开发者可以根据实际需求进行选择。