집합 이 옮 겨 다 닐 때 발생 하 는 병발 수정 이상

2495 단어 Java
교체 기 를 사용 하여 집합 을 옮 겨 다 닐 때 요 소 를 수정 할 수 없습니다.그렇지 않 으 면 자바.util.Concurrent ModificationException(동시 수정 이상)을 잘못 보고 할 수 있 습 니 다.
상세 한 것 은 아래 의 예 를 보십시오.
       import java.util.ArrayList;
          import java.util.Collection;
 import java.util.Iterator;
   import java.util.List;
  import java.util.ListIterator;

   public class Exception {



         //                 
/*
 *     :        :  ;       hello     ,         javaee
 * 
 */

public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	
	//      
         List list = new ArrayList() ; 
	
	list.add("hello");
	list.add("world");
	list.add("i'am");
	list.add("java");
	
	
	//     

 //	    Iterator it = list.iterator();
  //	    while(it.hasNext()){	    	
 //	    	String s = (String) it.next() ;
     //	    	if(s.equals("hello")){
     //	    		 
  //	    		list.add("javaee");
	    	}	
    } 
    
	/*
	 *          ,           
       java.util.ConcurrentModificationException  (      )
                  :               ,                ,               ,      
            :                    
                  :1.        ,       
                                                              
              2.       ,        
                                                        hello  
              3      
              
	 */

	//      ,         
  //		Object[] obj = list.toArray();
 //		for(int i= 0 ; i< obj.length ;i++){
//			
//			String s = (String) obj[i];
      //			if(s.equals("hello")){
    //				list.add("javaee");
 //			}
 //			
//		}
	
	//       ,             Iterator       ,        ListIterator
	ListIterator it = list.listIterator();
	while(it.hasNext()){
		
		String s = (String) it.next();
		if(s.equals("hello")){
			it.add("javaee");
		}
		
	}
	
	//          : 
     //	    Iterator it = list.iterator();
     //	    boolean b = false ;
     //	    while(it.hasNext()){
       //	    	
       //	    	String s = (String) it.next() ;
     //	    	if(s.equals("hello")){
     //	    		
     //	    		//list.add("javaee");
   //	    		b= true ;
      //	    	}	
//	    }

  //	    if(b== true){
       //	    	list.add("javaee");
      //	    }
     
      Iterator it2 = list.iterator();
     //	    while(it2.hasNext()){
     //	    	
      //	    	String s = (String) it2.next() ;
      //	    	System.out.println(s);
    //	    }

}

  }

좋은 웹페이지 즐겨찾기