List直接使用removeAll报错
需要先将list转换才能使用
原因是:
removeAll
方法在 Java 中用于从当前列表中删除另一个列表中存在的所有元素。如果直接对 List
接口的一个实现使用 removeAll
方法抛出异常,可能的原因有:
-
不同的
List
实现:如果你尝试在不支持该操作的List
实现上使用removeAll
,例如Arrays.asList()
创建的列表,则会抛出UnsupportedOperationException
。 -
并发修改异常:如果在迭代过程中尝试修改列表,会抛出
ConcurrentModificationException
。解决方法:
-
确保你使用的
List
实现支持removeAll
操作,如ArrayList
,LinkedList
,Vector
等。
public static void main(String[] args) {List<String> list1 = Arrays.asList("CS562798662", "CS563279854", "CS563276666");List<String> list2 = Arrays.asList("CS562798662", "CS563279854");ArrayList<Object> list11 = new ArrayList<>();ArrayList<Object> list22 = new ArrayList<>();list11.addAll(list1);list22.addAll(list2);list11.removeAll(list22);System.out.println(list11);}