📜  将 int 数组转换为 arraylist java (1)

📅  最后修改于: 2023-12-03 14:53:43.566000             🧑  作者: Mango

将 int 数组转换为 ArrayList

有时我们需要将一个 int 数组转换为 ArrayList,可能因为需要使用 ArrayList 提供的诸多优点,例如动态扩容、方便插入、删除等操作。

下面介绍两种常见的转换方式。

1. 使用 Arrays 工具类的 asList 方法

Arrays 工具类提供了一个 asList 方法,可以将数组转换为一个 List。但需要注意的是,asList 方法返回的是一个固定长度的 List,不能进行添加、删除等操作。如果要进行这些操作,需要将 List 转换为 ArrayList。

下面是示例代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ConvertIntArrayToList {

    public static void main(String[] args) {
        int[] intArray = {1, 2, 3, 4, 5};

        // 使用 Arrays 工具类的 asList 方法将 int 数组转换为 List
        List<int[]> intList = Arrays.asList(intArray);

        // 打印转换结果
        System.out.println("intArray 转换为 intList:");
        System.out.println(intList);

        // 将 List 转换为 ArrayList
        ArrayList<Integer> arrayList = new ArrayList<>();
        for (int i : intArray) {
            arrayList.add(i);
        }

        // 打印转换结果
        System.out.println("intArray 转换为 ArrayList:");
        System.out.println(arrayList);
    }

}

输出结果为:

intArray 转换为 intList:
[[I@10f87f48]
intArray 转换为 ArrayList:
[1, 2, 3, 4, 5]

由于 asList 方法返回的 List 类型是 List<int[]>,因此需要通过循环将其中的 int 数组转换为 ArrayList。

2. 使用 Stream API

Java 8 引入了 Stream API,可以方便地进行流式操作,包括将数组转换为 ArrayList。

下面是示例代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;

public class ConvertIntArrayToList {

    public static void main(String[] args) {
        int[] intArray = {1, 2, 3, 4, 5};

        // 使用 Stream API 将 int 数组转换为 ArrayList
        ArrayList<Integer> arrayList = Arrays.stream(intArray)
                .boxed()
                .collect(Collectors.toCollection(ArrayList::new));

        // 打印转换结果
        System.out.println("intArray 转换为 ArrayList:");
        System.out.println(arrayList);
    }

}

输出结果为:

intArray 转换为 ArrayList:
[1, 2, 3, 4, 5]

通过 Stream API,可以将 int 数组转换为包装类 Integer 的 Stream,再通过 box() 方法将每个 Integer 装箱为一个包装类,最后利用 Collectors.toCollection(ArrayList::new) 将 Stream 转换为 ArrayList。

以上就是将 int 数组转换为 ArrayList 的两种方法,根据自己的需求选择合适的方法即可。