why concurrent modification on foreach method but not on for loop

Viewed 811
 ArrayList<Integer> targets = new ArrayList<Integer>();
 targets.add(2);
 targets.add(2);

 for (Integer testInt : targets )
 {
       targets.add(1);
 }

I am getting an concurrentModificationException,But with normal for loop. I am not getting any exception. in normal forloop like:-

for(int i=0;i<target.size();i++)
{
   System.out.println(target.get(i));
   target.add(22); //no exception
   target.remove(2) // no exception 
}
1 Answers
Related