Quote:


异常:java.util.ConcurrentModificationException


在Map或者Collection的时候,不要用它们的API直接修改集合的内容,如果要修改可以用Iterator的remove()方法,例如:


public void setReparation( Reparation reparation ) {

for (Iterator it = this.reparations.iterator();it.hasNext();){ //reparations为Collection

Reparation repa = (Reparation)it.next();

if (repa.getId() == reparation.getId()){

this.reparations.remove(repa);

this.reparations.add(reparation);

}

}

}


如上写会在运行期报ConcurrentModificationException,可以如下修改:


public void setReparation( Reparation reparation ) {

boolean flag = false;

for (Iterator it = this.reparations.iterator();it.hasNext();){ //reparations为Collection

Reparation repa = (Reparation)it.next();

if (repa.getId() == reparation.getId()){

it.remove();

flag = true;

break;

}

}

if(flag){

this.reparations.add(reparation);

}

}



*