阿里巴巴 Java 开发手册:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法

【Java】Arrays.asList 有坑 1.概述 阿里巴巴Java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关的方法。 因为它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况。 问题分析 我们做个测试: public static void main(String[] args) { List<String> list = Arrays.asList("a", "b", "c. 阅读详情

参考链接:http://blog.youkuaiyun.com/WuZuoDingFeng/article/details/56017417

page10/34

引用:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。 

理解:

先看看Arrays.ArrayList的元素存储区的声明:

private final E[] a;
而java.util.ArrayList的存储区是这样声明的:

transient Object[] elementData;

这么一对比,李鬼假的简直太粗暴了,连一个优雅的名字都不舍得想。从声明上可以看出Arrays.ArrayList中的元素存储数组是一个不可变的数组引用,由于数组的长度本身是不可变的,所以Arrays.ArrayList从元素存储上就不支持长度变化,那么肯定是不允许add和remove操作了,所以在该类中就未对add和remove进行实现,直接调用了父类AbstractList中声明的方法:

正确使用方式:

String[] strings = new String[]{"hello","world"};
List<String> stringList = new ArrayList(Arrays.asList(strings));
stringList.add("java");



Silvaco Atlas入门指南——从零开始掌握半导体器件仿真 本文为Silvaco Atlas半导体器件仿真软件的入门指南,详细介绍了从零开始掌握该工具的核心流程。内容涵盖Atlas的基本概念、仿真流程、核心文件(输入、结构、输出文件)、交互式与批处理两种操作模式,并逐步演示了如何从定义网格、划分区域、设置电极到进行掺杂、选择物理模型并求解,最终获取和分析器件特性的完整步骤。旨在帮助微电子相关专业人员和工程师快速上手这一强大的“数字实验室”,提升半导体器件设计与研发效率。 阅读详情

相关推荐

别怕,“卷积”其实很简单

首先给大家讲一个关于卷积的小故事:小明是杭州某互联网大厂的员工,每天996十分辛苦,但小明最近爱上了打台球,经常不在工位。这天,小明的主管让小明改一个需求,小明却到楼下找产品部小丽打台球去了,被主管发现,他非常气愤,扇了小明一巴掌(注意,这就是输入信号,脉冲)。于是小明脸上会渐渐地(贱贱地)鼓起来一个包,小明的脸就是一个系统,而鼓起来的包就是小明的脸对巴掌的响应。好,这样就和信号系统建立起来意义对应的联系。

Machine Learning with Tutors 3184

Arrays.asList的用法

使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportOperationException异常 说明:asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。 String[] str = new S...

bingguang1993的博客 611

NFS服务器配置与autofs自动挂载

NFS服务器配置autofs自动挂载 环境: hostname ip OS server 192.168.220.138 centos7 client 192.168.220.139 centos7 一、NFS概述 NFS(Network File System)网络文件系统。最大功能就是通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 二、端口 [root@se...

DoloresOOO的博客 1027

【Java】使用Arrays.asList的注意事项

使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。因为Arrays.asList返回的是Arrays的内部类ArrayList(并不是java.util包下的ArrayList),它继承了AbstractList但没有重写add、remove、clear方法。 使用Arrays.ArrayList调用toArray方法生成的数组是带有泛型的数组,而.

mizepeng的博客 868

ANSYS Fluent 2023R2实战:用欧拉多相流模型搞定流化床模拟(附详细参数避坑)

本文详细解析了ANSYS Fluent 2023R2中欧拉多相流模型在流化床模拟中的应用,包括模型选择、材料属性设置、相间作用力配置及初始化技巧。特别针对高颗粒浓度工况提供参数优化方案,帮助工程师提升模拟精度与效率,适用于化工、能源等领域的流化床反应器设计。

weixin_30938149的博客 269

手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录

本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。

weixin_30872499的博客 448

Arrays.asList()用法梳理

Arrays.asList()用法梳理 Arrays.asList()用法梳理 asList概述 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁。 asList本质 使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/rem...

Frankltf的博客 748

【5G】5G 核心网(5GC)基本架构

本文旨在科普5G核心网相关知识...

Learning makes me happy (0^◇^0) 4万+

Arrays.asList详解

内容来源于网络: Arrays.asList() 将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类! 用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常。 转载地址:https://www.c

dzp921101655的博客 1232

UNet 改进(22):结合Transformer结构

保留了UNet的经典编码器-解码器结构在瓶颈层使用Transformer替代传统的卷积层采用跳跃连接保持空间细节信息使用双卷积块(DoubleConv)作为基础构建模块。

2401_82355416的博客 775

使用 Prometheus 监控 Spring Boot 应用

本文介绍了使用SpringBoot+Prometheus+Grafana实现应用监控的方案。首先在SpringBoot项目中集成Micrometer和Actuator组件,通过配置暴露Prometheus监控端点。接着配置Prometheus采集应用指标数据,并通过Grafana可视化展示。具体步骤包括:1)SpringBoot集成Micrometer;2)配置Prometheus抓取应用指标;3)安装Grafana并导入SpringBoot监控模板;4)展示JVM和业务指标。该方案可以实现对SpringB

蔡定努 432

java array as list,关于java:为什么Arrays.asList()返回自己的ArrayList实现

我最近发现,实际上Java中有2种不同的ArrayList实现(比我想的要晚得多...)。所以我想知道为什么Arrays.asList(T... a)需要返回一个无法调整大小的列表? 如果他们需要一个不可修改的列表,为什么要添加set(int index, E element)方法呢?所以我的一般问题是,为什么不从Arrays.asList(T... a)方法返回java.util.ArrayLi...

weixin_39630637的博客 385

SimpleITK使用——1. 进行Resample/Resize操作

文章目录1. 变换到一个新的spacing1.1 使用Resample()的方法1.1.1 完整代码1.1.2 转换前后图像1.2 使用ResampleImageFilter()的方法2. 已知原图和变换后目标图像的大小2.1 代码2.2 转换后图像3. 相关内容说明3.0 体素和spacing3.1 Resample() 函数说明3.2 itk::simple::ResampleImageFilter函数说明 1. 变换到一个新的spacing 1.1 使用Resample()的方法 1.1.1

啷个哩个啷 8081

CTO:谁在项目中使用Arrays.asList、ArrayList.subList,就立马滚蛋!

ArrayList的subList方法,返回的是原集合的一个子集合(视图),非结构性修改任意一个集合的元素的值,都会彼此影响,结构性修改原集合时,会报ConcurrentModificationException异常,结构性修改子集合时,会影响原集合,所以使用时要注意,避免程序错误或者异常。可以看出,SubList类是ArrayList的内部类,该构造函数中也并没有重新创建一个新的ArrayList,所以修改原集合或者子集合的元素的值,是会相互影响的。看似简单,用起来却有不少坑,稍不留神就踩雷。

周沐子 930

pscad IEEE标准系统搭建说明

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Arrays.asList()注意事项

Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合。 String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray); //上面两个语句等价于下面一条语句 List<String> m...

二缺和傻宝宝的博客 570

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Arrays.asList()使用指南

简介 Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合。 String[]myArray={"Apple","Banana","Orange"}; List<String>myList=Arrays.asList(myArray); //上面两个语句等价于下面一条语句 List<String&gt...

javashareauthor的博客 1441

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Arrays.asList的那些坑

Arrays.asList的那些坑 前言 阿里巴巴Java开发规范说到使用工具类 Arrays.asList() 方法把数组转换成集合时,不能使用其修改集合相关的方法。 因为它的 add/remove/clear 方法会抛出 UnsupportedOperationException(),我们来看一下为什么会出现这种情况。 问题分析 我们做个测试: public static void mai...

Mr_chen的博客 3234

为什么阿里巴巴开发手册明确说明 Arrays.asList() 不能使用其修改方法

点击上方“方志朋”,选择“设为星标”回复”666“获取新整理的面试资料来源:juejin.im/post/5d10e52ee51d454f6f16ec11引语:问题分析:总结:引语:阿里巴...

方志朋的博客 109

为什么要谨慎使用Arrays.asList、ArrayList的subList?

方法可以在一些简单的场合使用,比如快速声明一个集合,判断某个值是否在允许的范围内:但声明后不要再调用add等方法修改集合,否则会报异常。ArrayList的subList方法,返回的是原集合的一个子集合(视图),非结构性修改任意一个集合的元素的值,都会彼此影响,结构性修改原集合时,会报异常,结构性修改子集合时,会影响原集合,所以使用时要注意,避免程序错误或者异常。

mifffy_java的博客 361

阿里巴巴开发手册之Arrays.asList

规范内容 代码测试 package basicKnowledge.集合框架; import java.util.Arrays; import java.util.List; /** * @program:summary * @author:peicc * @create:2019-07-17 14:46:16 **/ //测试Arrays public class Arr...

皮皮狗 210

Arrays.asList() 不能用其修改方法

引语 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况. 问题分析 我们做个测试 public static void main(String[] args) { List list ...

mhHao的博客 1154

Arrays.asList存在的坑

引语: 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况. 问题分析: 我们做个测试 public static void main(String[] args) { L...

我想问问天的专栏 319

为什么阿里开发手册明确说明 Arrays.asList() 不能使用其修改方法?

点击上方 "程序员小乐"关注,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文Life is like a cup of tea. It won&#3...

程序员小乐 1285
上一篇: 适配器模式(Adapter):类适配器、对象适配器
下一篇: linux 搜狗安装
kotomi_du
博客等级 码龄10年 5粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值