📅  最后修改于: 2023-12-03 14:53:43.566000             🧑  作者: Mango
有时我们需要将一个 int 数组转换为 ArrayList,可能因为需要使用 ArrayList 提供的诸多优点,例如动态扩容、方便插入、删除等操作。
下面介绍两种常见的转换方式。
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。
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 的两种方法,根据自己的需求选择合适的方法即可。