Arrays.asList之后不要调用修改操作

简介: `Arrays.asList()`返回的列表不可直接增删元素,因其底层为固定大小的内部类,调用`add`等方法会抛出`UnsupportedOperationException`;且列表与原数组共享数据,修改数组内容会同步反映到列表中。

String[] str = new String[] { "you", "wu" };
List list = Arrays.asList(str);
因为asList返回的实际是一个Arrays内部类,并没有实现集合的修改方法(add/remove/clear)// 当操作修改方法时,会报UnsupportedOperationException。
第一种情况:list.add("yangguanbao"); 运行时异常。
第二种情况:str[0] = "gujin"; 那么 list.get(0)也会随之修改。[涉及栈堆指针操作,修改数组的数据,导致

相关文章
|
17小时前
|
存储 NoSQL Linux
2.4 Linux系统中的安装启动和连接
本文介绍在Linux系统部署单机MongoDB用于生产环境的完整步骤,包括下载、解压、目录配置、日志与数据路径设置、配置文件编写及服务启停方法。操作类似Windows,通过配置`mongod.conf`实现后台运行,支持命令行与图形工具连接,并提供防火墙处理与安全关闭服务方案,确保稳定运行。
|
18小时前
|
安全
SimpleDateFormat不要定义为static
SimpleDateFormat非线程安全,避免定义为static;若需静态使用,应加锁或采用ThreadLocal封装。JDK8推荐使用Instant、LocalDateTime和DateTimeFormatter,具备线程安全、不可变等优势,更简单高效。
|
18小时前
|
JSON 算法 Java
DSL语法、搜索结果处理
本文介绍了Elasticsearch(ES)的数据搜索功能,涵盖DSL查询语法、全文检索、精确查询、地理坐标查询及复合查询等类型。通过RestClient实现搜索,并结合黑马旅游案例,演示了酒店搜索、过滤、竞价排名等功能的实现过程,帮助读者掌握ES在实际项目中的应用。
 DSL语法、搜索结果处理
|
18小时前
|
机器学习/深度学习 人工智能 自然语言处理
AI群策群力术:让多个大模型一起干活不摸鱼
想让AI回答更准确?别指望一个模型包打天下!就像做菜找多个大厨试味,提示词集成(Prompting Ensembling)让多个提示词协同作战,通过民主投票选出最佳答案。从自一致性(Self-Consistency)到多样化推理(DiVeRSe),掌握这些技巧让你的AI应用准确率飙升!#人工智能 #提示词工程 #机器学习 #AI优化
|
18小时前
|
NoSQL 关系型数据库 MySQL
MySQL 并发控制核心原理与实践技巧
本文深入解析MySQL高并发场景下的数据一致性难题,涵盖事务隔离级别、锁机制与乐观锁原理,结合电商秒杀、订单重复等真实案例,提供隔离级别选择、悲观锁/乐观锁应用及Redis分流等实战策略,助力开发者平衡性能与一致性。
|
18小时前
|
项目管理
Controller的方法参数说明
护理项目实体类,包含项目编号、名称、单位、价格、图片、护理要求等信息,支持状态(启用/禁用)与排序管理,适用于养老护理服务系统中的项目管理。
|
17小时前
|
存储 NoSQL MongoDB
4.2.3 其他索引
MongoDB提供地理空间索引支持平面与球面查询,文本索引实现高效字符串搜索并提取词干,哈希索引则用于散列分片,仅支持等值匹配,提升数据分布随机性。
|
17小时前
|
存储 NoSQL 关系型数据库
4-MongoDB索引知识
MongoDB索引通过B树结构提升查询效率,避免全表扫描。支持单字段和复合索引,前者适用于单一字段排序与查询,后者按字段顺序构建,优化多条件查询与排序操作,显著提升大数据量下的查询性能。
|
17小时前
3.5 文档的分页查询
统计查询使用count()方法,可统计集合中符合条件的记录数量。语法为db.collection.count(query, options)。如统计comment集合全部记录:db.comment.count();按条件统计userid为1003的记录数:db.comment.count({userid:"1003"})。默认返回所有匹配文档的数量。
|
1天前
|
安全 Java 大数据
ArrayList扩容机制
初始化Map应避免容量设置不当,推荐使用Guava的`newHashMapWithExpectedSize`或手动计算初始容量。禁止使用`Executors`创建线程池,易因无界队列或过多线程引发OOM,应显式通过`ThreadPoolExecutor`构建,推荐结合Guava设置命名线程工厂。`Arrays.asList`返回不可变列表,禁止修改操作;遍历Map时优先使用`entrySet`提升性能;`SimpleDateFormat`非线程安全,建议用`ThreadLocal`隔离或JDK8新时间API;并发更新记录需加锁,推荐乐观锁(version控制),冲突率低时重试不少于3次。