一. 报错
需求: 两个字符串转换成list, 去重
结果报错如下图:
java.lang.UnsupportedOperationException
不支持的操作异常
二 原因
这是因为使用了数组转换成list方法引起的 —Arrays.asList()
这是由Arrays.asList() 返回的是Arrays的内部类ArrayList, 而不是java.util.ArrayList。
Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,
remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。
java.util.ArrayList重写了这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。
三 总结并修改
所以,在对数组转化成的集合做 add / remove/ removeAll等 操作时, 必须转换成java.util.ArrayList 才能操作.
修改如下: