此集合非彼集合-Arrays.asList()
此集合非彼集合-Arrays.asList()
前言
今天使用Arrays.asList();方法和两个数组arr1.removeAll(arr2);查交集
但出现java.lang.UnsupportedOperationException
报错代码(例):
String[] array = {"1","2","3","4","5"}; |
问题所在
查阅资料,发生问题的原因如下:
Arrays的asList方法返回的是Arrays的内部类ArrayList,它并不是java.util.ArrayList,只不过它们的父类都是AbstractList。
可以看到Arrays的内部类ArrayList并没有重写add和remove方法,所以当我调用Arrays的内部类ArrayList的add方法时实际上是集成父类AbstractList的add方法。
AbstractList的add方法抛出java.lang.UnsupportedOperationException异常
而java.util.ArrayList的add方法重写了父类的方法,所以不会报错。
解决
重新建一个数组即可
String[] array = {"1","2","3","4","5"}; |
此文章版权归Chankeitin所有,如有转载,请註明来自原作者