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);}