JAVAベース(List集合同時修正異常)

1655 ワード

1,C o n c u r r r e n tModificationExceptionが発生した理由:
  • 反復器遍歴、集合修正集合
  •  
    2、ソリューション
  • 反復要素、反復修正要素(ListIteratorの固有機能add)
  • 集合遍歴要素、集合修正要素
  • 遍歴中に要素を追加するには、ListIteratorのaddメソッド
  • を使用します.
    
    import java.util.ArrayList;
    
    import java.util.Iterator;
    
    import java.util.List;
    
    import java.util.ListIterator;
    
    
    
    
    
    public class Demo3_List {
    
    
    
    
    
        /**
    
         ** A: 
    
         *  : , , "world" , , "javaee" ,
    
         */
    
        public static void main(String[] args) {
    
            List list = new ArrayList();
    
            list.add("a");                                    //Object obj = new String();
    
            list.add("b");
    
            list.add("world");
    
            list.add("c");
    
            list.add("d");
    
            list.add("e");
    
            
    
            /*Iterator it = list.iterator();                    // 
    
            while(it.hasNext()) {                            // 
    
                String str = (String)it.next();                // 
    
                if("world".equals(str)) {
    
                    list.add("javaee");                        // , ConcurrentModificationException
    
                }
    
            }*/
    
            
    
            ListIterator lit = list.listIterator();            // (List )
    
            while(lit.hasNext()) {
    
                String str = (String)lit.next();            // 
    
                if("world".equals(str)) {
    
                    //list.add("javaee");                        // , ConcurrentModificationException
    
                    lit.add("javaee");
    
                }
    
            }
    
            System.out.println(list);
    
        }
    
    }