Java数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException,如何解决?

【python数据挖掘课程】二十八.基于LDA和pyLDAvis的主题挖掘及可视化分析 这是《Python数据挖掘课程》系列文章,前面很多文章都讲解了数据挖掘、机器学习,这篇文章主要讲解LDA和pyLDAvis算法,同时讲解如何读取CSV文本内容进行主题挖掘及可视化展示。文章比较基础,希望对你有所帮助,提供些思路,也是自己教学的内容。推荐大家购买作者新书《Python网络数据爬取及分析从入门到精通(分析篇)》,如果文章中存在错误或不足之处,还请海涵。 目录: 一.显示结果及安装 二.LDA主题挖掘 三.pyLDAvis可视化分析 四.小结 阅读详情

Java中,可以使用Arrays.asList(T... a)方法来把一个数组转换为List,返回一个受指定数组支持的固定大小的列表。此方法同 Collection.toArray()一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。
此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:

List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");

当转换后,使用add或者remove方法总是抛出java.lang.UnsupportedOperationException异常。
其底层的实现代码如下:

public static <T> List<T> asList(T... a) {
      return new ArrayList<T>(a);
} 

创建了一个ArrayList对象,而这个ArrayList并不是java.util包下面的ArrayList,而是java.util.Arrays类中的一个内部类,其实现代码如下:

private static class ArrayList<E> extends AbstractList<E>  implements RandomAccess, java.io.Serializable  {    
    private static final long serialVersionUID = -2764017481108945198L;
    private final E[] a;
    ArrayList(E[] array) { 
      if (array==null)  
      throw new NullPointerException();       
    a = array;   
} 

而这个ArrayList类又继承了AbstractList类,其中的add和remove方法的实现过程又如下:

public void add(int index, E element) {
    throw new UnsupportedOperationException();     
} 

public E remove(int index) {
    throw new UnsupportedOperationException();   
}

所以,肯定为出现不支持操作的异常。
那么,一种解决办法是把列表再拷贝到ArrayList中就好了。
ArrayList newList = new ArrayList<>(list);就可以使用add()和remove()方法了。

基于知识图谱的档案智慧问答系统:构建智能化档案管理与知识服务新范式 基于知识图谱的档案智慧问答系统是档案管理领域的一次重要创新,它通过将档案数据转化为结构化的知识图谱,并结合自然语言处理和智能问答技术,实现了档案信息的智能化管理与服务。该系统不仅能够提升档案管理的效率,还能为用户提供更全面、更便捷的知识服务,具有广泛的应用前景和深远的社会意义。未来,随着技术的不断进步和应用场景的不断扩展,基于知识图谱的档案智慧问答系统将在更多领域发挥其价值,为档案管理领域的智能化转型提供强有力的支持。 阅读详情

相关推荐

高等数学/概率论/数理统计/线性代数/离散数学面试-核心概念-问题理解

特征值与特征向量是线性代数中的概念,它们与线性变换有关。在线性变换中,如果存在非零向量 v ,使得当该向量通过变换后,其方向不变,只是长度发生了变化,那么这个向量 v 就是特征向量。而这个长度变化的比例因子,即变换前后向量长度的比值,称为特征值。数学公式表示:通俗易懂的解释:想象一下,你有一个可以伸缩的橡皮筋,这个橡皮筋可以代表一个向量。现在,你有一个特殊的机器,它可以改变橡皮筋的形状,但不会改变它延伸的方向。当你把橡皮筋放入机器中,机器会拉伸或压缩橡皮筋,但橡皮筋的方向保持不变。

m0_64198455的博客 2294

数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException

从别的博客上看到了出现这种情况的分析,我也不再自己从头分析了,附上大神分析好的。 Java中,可以使用Arrays.asList(T... a)方法来把一个数组转换为List,返回一个受指定数组支持的固定大小的列表。此方法同 Collection.toArray()一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 Ran

学习飞翔 9398

智能车图像处理去畸变+逆透视教程

图像处理,去畸变与逆透视整合

wu58430的博客 1万+

Java Arrays.asList()需要注意的坑(返回对象不支持add()和remove()方法)

由于Arrays.asList()返回的类型是java.util.Arrays.ArrayList,而不是java.util.ArrayList,所以不支持add()和remove()方法。 以下是java.util.Arrays.ArrayList的源码: /** * @serial include */ private static class ArrayList<E> extends AbstractList<E> im

旭东怪的博客 793

物联网低功耗广域网NB-IoT开发(一):初识NB-IoT

(二)NB-IoT的关键特性: (三)NB-IoT的应用场景: 二、NB-IOT介绍

weixin_49763156的博客 853

华为无线WiFi实战:基于802.1x与NPS的企业级认证部署指南

本文提供了一份详尽的华为无线WiFi企业级认证部署实战指南。通过整合802.1x协议与Windows NPS服务器,构建基于AD域账号的安全认证体系,彻底解决传统WiFi密码共享带来的安全风险。文章详细拆解了从NPS服务器配置、证书部署到华为AC端RADIUS模板、AAA方案、认证域及VAP模板调用的全流程,并附有终端连接测试与常见故障排查方法,助力企业实现高效、安全的无线网络接入管理。

weixin_29239661的博客 272

Java ArrayList在遍历时删除元素

ArrayList在遍历时删除元素

心流时间的博客 1632

【雕爷学编程】Arduino智慧农业之温湿度数据上传到云平台

它们可能有错误、不适用或者无法编译。在实施过程中,需要注意传感器的选择和校准、通信和网络稳定性、数据隐私和安全保护、电源管理以及数据分析和决策支持等方面的事项。数据分析和决策支持:上传到云平台的温湿度数据可以提供丰富的信息,但需要合适的数据分析和决策支持工具来帮助农业业主理解和利用这些数据。您可以根据自己的需求和喜好选择适合您的云平台和库,并根据您的具体硬件配置进行适当的修改和调整。将温湿度数据上传到云平台,农业业主可以实时监测粮库内的温湿度情况,及时采取通风、除湿等措施,确保粮食质量和长期储存的稳定性。

雕爷学编程 1275

Arrays.asList返回的List不支持add/remove操作原理及解决方法

Arrays.asList返回的List不支持add/remove操作原理及解决方法

weixin_49114503的博客 2677

轮式并联五连杆下肢机器人运动控制:从建模到强化学习仿真训练

本文提出了一种基于强化学习的轮式并联五连杆下肢机器人运动控制方法。首先建立了机器人的运动学和动力学模型,推导了正逆解公式,并构建了URDF模型。随后在PyBullet仿真环境中搭建了包含复杂地形的训练场景,设计了基于PPO算法的端到端控制策略,包含状态空间、动作空间和奖励函数的详细设计。通过多组仿真实验验证了该方法在台阶攀爬等任务中的有效性,为轮腿机器人运动控制提供了完整的可复现技术方案。

huanghm88的专栏 350

RK3588 部署 YOLO26 目标检测:PT → ONNX → RKNN 全流程

YOLO26n 在 RK3588 上 INT8 量化后 NPU 推理约 15ms,系统 FPS 约 55,可以覆盖边缘端实时检测需求。模型从 PT 到 RKNN 的转换要用opset=11避免算子兼容问题。先用 YOLO26n + 640 输入跑通全链路,确认推理结果正确后再做性能调优。

m0_64661770的博客 306

解决list.add、list.addAll报错java.lang.UnsupportedOperationException

解决list.add、list.addAll报错java.lang.UnsupportedOperationException 时间宝贵,先讲解决方法: 使用Arrays.asList()转成的数组,调add或者addAll方法报错java.lang.UnsupportedOperationException 使用new ArrayList(Arrays.asList(...

qq_45802007的博客 5159

Vue2 - 详细实现接入使用海康威视监控云端显示及控制功能,网站集成安装海康监控及实时监控显示、回放、放大缩小画面、视频画面截图、截屏抓拍、摄像头控制,实时推流及播放器解决延迟卡顿等问题(详细代码)

vue2,nuxt2,海康威视,海康监控,摄像头监控,vue对接海康处理接口认证规则,监控实时预览和回放功能,海康api接口,安全认证,海康开放平台,官方文档,播放海康摄像头的监控视频,海康实时监控播放详细步骤,web,黑屏,特别卡不流畅怎么办,解决无法推流,录像,连接不上,vue,海康,vue海康视频监控,海康开放平台,实时监控画面,海康插件,视频播放,回放,视频流地址,取流协议,视频sdk播放,hik,rtsp,rtmp,hls,ws,网站,网页,h5页面,后台管理系统,vue2对接海康监控设备,无法连

🏆 前端领域优质创作者 8248

java.lang.UnsupportedOperationException[已解决]

在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的 @Test public void method() { String[] array = {"a", "b", "c"}; List<String> list1 = Arrays.asLis...

wuyuanshun的博客 393

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java.lang.UnsupportedOperationException解决方法

转自https://blog.csdn.net/Tracycater/article/details/77592472?locationNum=2&fps=1 在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。 代码块: public class...

qizhenyibao的博客 712

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java.lang.UnsupportedOperationException解决方法【转】

java.lang.UnsupportedOperationException解决方法【转】 做开发一定要注重细节。 在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。 代码块: public class ListTest { public static void main(String[] args) { String[] array = {

qq_34466889的博客 655

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Arrays.asList();通过该方法返回的List做删除以及添加会报错nested exception is java.lang.UnsupportedOperationException

解决办法:new ArrayList<>(Arrays.asList());此时返回的List则可以正常添加与移除。 今天在做数组的求交集,当时把String[]转换成List<String>,通过Arrays.asList进行转换,当两个list做retainAll操作时候,抛出了异常“java.lang.UnsupportedOperationException” 发生原因:使用asList返回的是Arrays的内部类ArrayList,继承的是父类AbstractList里

qq_29417111的博客 334

java.lang.UnsupportedOperationException问题

1、异常代码: public static void main(String[] args) { String[] arr = new String[]{"a", "b", "c"}; //在使用Arrays.asList转化数组成为list的时候,如果做添加操作,不能直接Arrays.asList() List<String> list = Arrays...

myroncham的博客 896

异常 : java.lang.UnsupportedOperationException

调用Arrays.asList()生产的List的add、remove方法时报异常,

小新的博客 247

java aa. size_Arrays.asList(aa).size()一道笔试题

int aa[]={1,2,3,4,5,6};List list=Arrays.asList(aa);System.out.println(list.size());//结果输出1list.add(12);//抛出异常Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.util.AbstractList...

weixin_42621217的博客 152

java.lang.UnsupportedOperationException 报错解决办法

java.lang.UnsupportedOperationException 报错解决办法 Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(A...

jia_youshzh的博客 882

List 调用 remove 方法时抛出 java.lang.UnsupportedOperationException 异常原因

原因 使用 Arrays.asList(arr) 转换的 List 并不能进行 add 和 remove 操作。 Arrays.asList(arr) 返回的类型是 Aarrays$ArrayList 并不是 ArrayList,Aarrays$ArrayList 和 ArrayList 都继承 AbstractList,但是 AbstractList 中的 add 方法和 rem...

weixin_30491641的博客 91
上一篇: JS获取设备信息
下一篇: $.ajax()方法详解
以夢爲馬☆
博客等级 码龄15年 286粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值