java.util.ConcurrentModificationException 这个异常是JAVA开发者刚刚接触java时经常产生的。但是什么情况下会产生这种异常呢?为什么会产生这种异常呢,如何避免呢?
###产生原因
先来看看一下集中情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static void testArrary(){ ArrayList<Integer> aList = new ArrayList<Integer>(); for (int i = 0; i < 5; i++) { aList.add(i*i); } for (Integer a : aList) { if(a == 4){ aList.add(100);//包异常 } } Iterator<Integer> iterator = aList.iterator(); while (iterator.hasNext()){ Integer next = iterator.next(); if(next == 4){ // aList.remove(next);//报异常 iterator.remove();//不报异常 } } for (int i = 0; i < aList.size(); i++) { Integer integer = aList.get(i); if(integer == 4){ aList.remove(integer);//不报异常 } } System.out.println(aList.size()); }
|