Java 数组转化为 List 的多种方法228


Java 中的数组和 List 是两种不同的数据结构,分别用于存储元素集合。数组是固定大小的,而 List 是动态大小的。有时,我们需要将数组转化为 List,以便利用 List 提供的更丰富的功能。

使用 ()

Java 提供了 `()` 方法,可以将数组直接转化为 List。此方法返回一个与数组长度相同的固定大小的 List。但是,需要注意的是,此方法返回的 List 是对数组的引用,对 List 进行任何修改都会影响原始数组。
int[] arr = {1, 2, 3, 4, 5};
List list = (arr);
(6); // 抛出 UnsupportedOperationException
(0, 10); // 更改数组中的值
((arr)); // 输出:"[10, 2, 3, 4, 5, 6]"

使用 ArrayList 构造函数

我们可以使用 `ArrayList` 构造函数,将数组中的元素复制到一个新的 List 中。此方法创建了一个与数组长度相同大小的可变大小的 List。
int[] arr = {1, 2, 3, 4, 5};
List list = new ArrayList((arr));
(6); // 成功添加元素
(0, 10); // 更改 List 中的值,不影响原始数组
((arr)); // 输出:"[1, 2, 3, 4, 5]"

使用 Stream

我们可以使用 Java 8 流 API 将数组转化为 List。此方法创建一个与数组长度相同大小的可变大小的 List。
int[] arr = {1, 2, 3, 4, 5};
List list = (arr).boxed().toList();
(6); // 成功添加元素
(0, 10); // 更改 List 中的值,不影响原始数组
((arr)); // 输出:"[1, 2, 3, 4, 5]"

使用循环

我们还可以使用循环手动创建一个 List 并填充数组中的元素。此方法需要创建新 List 的开销,并允许我们根据需要定制 List 的类型和大小。
int[] arr = {1, 2, 3, 4, 5};
List list = new ArrayList();
for (int element : arr) {
(element);
}
(6); // 成功添加元素
(0, 10); // 更改 List 中的值,不影响原始数组
((arr)); // 输出:"[1, 2, 3, 4, 5]"

选择方法

哪种方法最适合将数组转化为 List 取决于特定情况。如果需要直接修改数组,则 `()` 方法是合适的。如果需要一个可变大小的 List,并且不希望影响原始数组,则 `ArrayList` 构造函数或流 API 是更好的选择。如果需要完全控制 List 的类型和大小,则循环方法更加灵活。

将 Java 数组转化为 List 有多种方法,每种方法都有其优缺点。通过理解这些方法的差异,我们可以根据需要做出明智的选择。

2024-12-08


上一篇:深入剖析 Java 中汉字字符串处理

下一篇:Java 长连接的代码实现及保持连接的策略