Arrays.asList()和ArrayList的subList()大坑

以下内容大部分摘抄自公众号:程序员乔戈里 在项目中用了Arrays.asList、ArrayList的subList,被公开批评 (qq.com) 仅作为自己的记录学习过的知识,如有侵权,联系立删!

1:Arrays.asList()

该方法返回的ArrayList不是我们平时常用的java.util.ArrayList,而是Arrays类的一个内部类,该内部类继承AbstractList类,并且重写了很多方法,但是没有重写add,remove,clear方法,所以通过Arrays.asList方法得到的集合不能进行修改,否则就会报如下异常:

 

 阿里巴巴开发规范中也有说到:

 

 所以一定要注意避免踩坑!!!

2:ArrayList的subList方法:

首先看下使用方式:

 

 

 

 但是有以下几点需要注意:

 

 

 

 所以,要注意使用了subList方法后,修改父子集合中的值都会对对方产生影响,同时:修改父集合的结构(新增值,删除值等)会报异常,修改子集合的结构,虽不会报异常,但是也是会对父集合带来影响。

 

posted @ 2022-01-16 16:01  不能看窗外  阅读(117)  评论(0)    收藏  举报