ArrayList要素削除同時異常C o n c u r r r e ntModificationExceptionソリューション

3453 ワード

/ 1 Iterator remove ,   for (Iterator it = myList.iterator(); it.hasNext();) {       String value = it.next();        if (value.equals( "3" )) {            it.remove();  // ok       } } System. out.println( "List Value:" + myList.toString());
    // 2 , ,              List templist = new ArrayList();   for (String value : myList) {        if (value.equals( "3" )) {            templist.remove(value);       } }   // removeAll , Iterator myList.removeAll(templist); System. out.println( "List Value:" + myList.toString());       
     // 3. CopyOnWriteArrayList List myList = new CopyOnWriteArrayList(); myList.add( "1" ); myList.add( "2" ); myList.add( "3" ); myList.add( "4" ); myList.add( "5" );
  Iterator it = myList.iterator();
    while (it.hasNext()) {       String value = it.next();        if (value.equals( "3" )) {            myList.remove( "4" );            myList.add( "6" );            myList.add( "7" );       } } System. out.println( "List Value:" + myList.toString());
    // 4. Iterator ,   for ( int i = 0 ; i < myList.size(); i++) {       String value = myList.get(i);       System. out.println( "List Value:" + value);        if (value.equals( "3" )) {            myList.remove(value);  // ok            i--; // , i       } } System. out.println( "List Value:" + myList.toString());