ArrayListのjavaを解決する.util.ConcurrentModificationException


public class ListRemoveTest {   
	public static void main(String[] args) {   
	        ListRemoveTest test = new ListRemoveTest();   
	           
	        System.out.println("-1-  jdk5.0     for   remove");   
	        List list = test.buildList();   
	        try {   
	            /*for (String str : list) {//      
	                list.remove(str);   
	            } */  
	        	for (int i = 0; i < list.size(); i++) {
					list.remove(list.get(i));//   remove(objec),      for         
				}
	        } catch (Exception e) {   
	            e.printStackTrace();    
	        }   
	  
	        System.out.println("-2-  Iterator remove");   
	        list = test.buildList();   
	        try {   
	            Iterator iterator = list.iterator();   
	           while (iterator.hasNext()) { 
	        	    iterator.next();//        
	                iterator.remove(); //      
	            }   
	        } catch (Exception e) {   
	            e.printStackTrace();   
	        }   
	  
	        System.out.println("-3-iterator  +list remove");   
	       try {   
	            list = test.buildList();   
	           for (Iterator iterator = list.iterator(); iterator.hasNext();) {   
	                String str = (String) iterator.next();   
	                //list.remove(str);//      
	                iterator.remove();//      
	            }   
	        } catch (Exception e) {   
	            e.printStackTrace();   
	        }   
	           
	        System.out.println("-4-  list remove(int)  . [      ]");   
	        list = test.buildList();   
	        for (int i = list.size(); i > 0; i--) {   
	            list.remove(i - 1);   
	        }   
	  
	        System.out.println("-5-  list remove(int)  . [      ]");   
	        list = test.buildList();   
	        for (int i = 0; i < list.size(); i++) {   
	            list.remove(0);   
	        }   
	    }   
	  
	    private List buildList() {   
	        List list = new ArrayList();   
	        list.add("a");   
	        list.add("b");   
	        list.add("c");   
	        return list;   
	    }   
	} 

実行結果:
-1-  jdk5.0     for   remove
-2-  Iterator remove
-3-iterator  +list remove
-4-  list remove(int)  . [      ]
-5-  list remove(int)  . [      ]