您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java尝试从列表中删除元素时,为什么会出现UnsupportedOperationException?

Java尝试从列表中删除元素时,为什么会出现UnsupportedOperationException?

你的代码有很多问题:

Arrays.asList返回一个固定大小的列表

从API:

Arrays.asList:返回指定数组支持的固定大小的列表。

你不能add做到 你不能remove。你无法在结构上修改List

创建一个LinkedList支持更快remove

List<String> list = new LinkedList<String>(Arrays.asList(split));

从API:

String.split(String regex):在给定正则表达式的匹配项周围拆分此字符串。

|是正则表达式元字符;如果要拆分文字|,则必须将其转义\|为Java字符串文字"\\|"

固定:

template.split("\\|")

与其remove一次用一个随机索引调用一个数字,不如生成一个足够的范围内的随机数,然后用List一次遍历一次listIterator(),并remove()在适当的索引上调用,这更好。关于如何在给定范围内生成随机但不同的数字,有一些关于stackoverflow的问题。

这样,你的算法将是O(N)

java 2022/1/1 18:17:10 有439人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶