java中使用 Arrays.asList()新增报错问题解决方法

Arrays.asList() 返回的是一个固定大小的列表。如果你尝试使用该列表进行添加、删除等修改操作,会抛出 UnsupportedOperationException 异常。这是因为 Arrays.asList() 返回的列表背后是一个数组,它的大小是固定的,不能进行动态修改。
解决方法
使用 ArrayList 包装 Arrays.asList() 的结果
如果你需要修改返回的列表(如添加、删除元素),可以将 Arrays.asList() 返回的列表传递给一个新的 ArrayList 实例。这样你就可以自由地对列表进行操作了。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String[] arr = {"a", "b", "c"};
        List<String> list = new ArrayList<>(Arrays.asList(arr));  // 创建一个新的 ArrayList
        list.add("d");  // 可以正常修改
        System.out.println(list);  // 输出 [a, b, c, d]
    }
}

这里,Arrays.asList() 返回的列表是固定大小的,但通过 new ArrayList<>(Arrays.asList(arr)) 创建了一个可变的 ArrayList,可以自由添加元素。
检查是否进行不支持的操作
确保你没有尝试对由 Arrays.asList() 返回的列表进行不支持的操作。例如,调用 add()remove() 等方法会抛出异常。解决方法是使用 ArrayListLinkedList
示例代码:
错误示例:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("a", "b", "c");
        list.add("d");  // 会抛出 UnsupportedOperationException
    }
}

正确示例:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
        list.add("d");  // 正常添加元素
        System.out.println(list);  // 输出 [a, b, c, d]
    }
}

通过这种方式,你就可以解决 Arrays.asList() 引发的 UnsupportedOperationException 错误,灵活操作列表。

发布者:myrgd,转载请注明出处:https://www.object-c.cn/5033

Like (0)
Previous 2024年12月2日 下午4:20
Next 2024年12月2日 下午4:36

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信