今天寫了個簡單的list中remove元素的方法,結果報錯。。。
List<String> ll = Arrays.asList("1","2","3","4","5"); for (int i=0; i < ll.size(); i++){ ll.remove(i); }
報錯,java.lang.UnsupportedOperationException,這個是因為Arrays.asList()返回AbstractList,沒有實現增刪改操作,用如下構造方式解決。
List<String> list = new ArrayList<>(Arrays.asList("1","2","3","4","5")); for (int i = 0; i < list.size(); i++){ list.remove(i); } System.out.println(list);
注意這種方式並不是把所有元素刪除(list.size())
list = new ArrayList<>(Arrays.asList("1","2","3","4","5")); for (String s : list){ list.remove(s); } System.out.println(list);
報錯,java.util.ConcurrentModificationException,這個是因為for-each迭代過程中摻雜了修改元素的動作。