1. 遇到的问题:
使用Arrays.asList()方法获取数组,并在对数组元素进行移除操作时报错java.lang.UnsupportedOperationException。
2.原因
通过asList()方法获得的ArrayList非我们常用的ArrayList,我们常用的ArrayList是java.util.ArrayList,而这里new的是java.util.Arrays.ArrayList,他是Arrays类下的一个内部类,他的类声明如下:
可以看到,他和java.util.ArrayList都继承至AbstractList抽象类,但是他并没有实现add方法和remove方法,当我们调用add方法的时候,他实际调用的是父类AbstractList的add方法,该方法不做操作,只抛出UnsupportedOperationException异常
3.解决方法
解决上面的问题只需要把得到的list再放进java.util.ArrayList中就行了,
例:List lists=new ArrayList(list)