Arrays.asList()和Collections.singletonList()报错java.lang.UnsupportedOperationException

问题:

使用工具类Arrays.asList()方法把数组转换成集合时,不能使用修改集合相关的方法,比如add,remove。这个ArrayList是Arrays类自己定义的一个内部类!这个内部类没有实现add()、remove()方法,而是直接使用它的父类

的相应方法。而父类中的add()和remove()是直接抛出异常的

源码:

解决方法:

总结:

1.Arrays.asList()底层其实还是数组;

2.如果使用了Arrays.asList()的话,最好不要使用其集合的操作方法;

3. List list = new ArrayList<>(Arrays.asList(“a”, “b”, “c”))可以在外面这样包一层真正的ArrayList

posted @ 2019-12-20 10:30  二次元的程序猿  阅读(380)  评论(0编辑  收藏  举报