你真的了解Arrays.asList生成的集合的使用吗(UnsupportedOperation Exception异常)

出现的问题
Arrays.aslist()数组转集合的时候生成的list是不能够进行add和remove操作的(它基于一个固定大小的数组,而这个数组仅支持那些不会改变数组大小的操作。
任何会引起对底层数据结构的尺寸进行修改的方法都会产生一个UnsupportedOperation Exception异常,以表示对未获支持操作的调用(一个编程错误)。),因为生成的ArrayList是Array的一个内部类。它和Java.util.arraylis虽然都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重写。

解决办法
所以如果要对数组转集合的的集合进行增删操作,可以把Arrays.asList()的结果作为构造器的参数传递给任何Collection(或者使用addAll()方法,或者 Collections.addAll()静态方法)
或者转化的时候不用Array.asList可以使用stream流进行操作。具体如下:
List conferenceMajorList = Arrays.stream(doctorMajorTypeIds.split(“,”)).collect(Collectors.toList());

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值