ConcurrentModificationException 并发修改异常
package com.heima.day01; import java.util.ArrayList; public class Demo { public static void main(String[] args) { ArrayList<String> arrayList = new ArrayList(); arrayList.add("a1"); arrayList.add("a2"); arrayList.add("a3"); arrayList.add("a4"); arrayList.add("a5"); arrayList.add("a6"); for (String s : arrayList) { if (s.equals("a2")) { arrayList.remove(s); } } } }
Exception in thread "main" java.util.ConcurrentModificationException
原因:集合在做遍历时是不能做任何修改的,因为它无法确定删除完元素后是位移呢还是要先去自动遍历呢
解决:使用 CopyOnWriteArrayList
// ArrayList<String> arrayList = new ArrayList(); CopyOnWriteArrayList<String> arrayList = new CopyOnWriteArrayList(); // 线程安全集合类