java.lang.UnsupportedOperationException
异常产生处代码
List<Integer> a = Arrays.asList(1,2,3);
List<Integer> b = new ArrayList<>();
b.add(1);
a.removeAll(b);
报错
java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)
at java.util.AbstractList$Itr.remove(AbstractList.java:374)
.................
修正
将Arrays.asList(x)改为new ArrayList(Arrays.asList(x))声明
List<Integer> a = new ArraysList<>(Arrays.asList(1,2,3));
List<Integer> b = new ArrayList<>();
b.add(1);
a.removeAll(b);
原因
通过 Arrays.asList() 创建的 List 是一个固定大小的 List,它的底层实现依赖于原始数组,因此无法进行增删操作。如果你尝试调用 removeAll()、add() 或 remove() 等修改操作,会抛出 UnsupportedOperationException。