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

asList函数实现数组和List之间的转换

发布时间:2023-11-01 17:44:28

asList函数是JDK中Arrays类中的一个静态方法,用于将数组转换为List集合。它的原型如下:

public static <T> List<T> asList(T... a)

asList函数接受一个泛型参数,将传入的数组元素转换为一个List集合。它返回的List对象是一个固定大小的列表,意味着它不能进行添加或删除元素的操作。当我们修改List集合中的元素时,底层数组也会相应发生改变。

下面我们将通过实例来详细说明asList函数的用法和转换过程。

1. 将数组转换为List集合

String[] array = {"apple", "banana", "orange"};
List<String> list = Arrays.asList(array);

在上述代码中,我们首先创建一个String类型的数组array,然后调用asList函数将数组转换为List集合。最终我们得到的list是一个包含数组元素的List集合。

2. 修改List集合中的元素

list.set(0, "grape");

通过调用list的set函数,我们可以修改List集合中的元素。在上述代码中,我们将原来的"apple"替换为"grape"。

3. 验证数组的改变

System.out.println(Arrays.toString(array));

通过调用Arrays类中的toString函数,我们可以将数组转换为字符串并打印出来。在上述代码中,我们可以看到数组的 个元素已经被修改为"grape"。

4. 将List集合转换为数组

String[] newArray = list.toArray(new String[list.size()]);

通过调用List的toArray函数,我们可以将List集合转换为数组。在上述代码中,我们首先创建一个与list集合相同大小的数组newArray,然后将list集合中的元素复制到新创建的数组中。

5. 验证数组的转换

for (String fruit : newArray) {
    System.out.println(fruit);
}

通过遍历数组,我们可以逐个打印出转换后的数组元素。在上述代码中,我们可以看到转换后的数组内容与原数组相同。

需要注意的是,asList函数在转换过程中并没有创建新的ArrayList对象,而是返回了一个实现了List接口的固定大小的ArrayList对象。这意味着我们无法对该ArrayList进行添加或删除元素的操作,只能修改元素的值。如果我们需要对List集合进行添加或删除操作,应该使用ArrayList类的构造函数来创建一个新的ArrayList对象。

总结:

asList函数是Arrays类中的一个静态方法,用于将数组转换为List集合。它返回的List集合是一个固定大小的列表,只能修改元素的值,不能进行添加或删除操作。转换后的数组内容与原数组一致,当我们修改List集合中的元素时,底层数组也会相应发生改变。如果需要对List集合进行添加或删除操作,应该使用ArrayList类的构造函数创建一个新的ArrayList对象。