我试图从列表中删除对象,我得到以下异常:
failure:java.util.ConcurrentModificationException null
Run Code Online (Sandbox Code Playgroud)
这就是我尝试从列表中删除对象的方法:
private List<testVO> removeDuplicateEntries(List<testVO> sessionList,List<testVO> dbList){
for (Iterator<testVO> dbIterator = dbList.listIterator(); dbIterator.hasNext(); ) {
testVO voDB = dbIterator.next();
for (Iterator<testVO> sessionIterator = sessionList.iterator(); sessionIterator.hasNext();) {
testVO voSession = (testVO) sessionIterator.next();
if(voDB.getQuestionID().intValue() == voSession.getQuestionID().intValue()){
//remove the object from sesion list
sessionIterator.remove();
//Add the object from DB to session list
sessionList.add(voDB);
}
}
}
return sessionList;
}
Run Code Online (Sandbox Code Playgroud)
我想删除当前的副本sessionList并添加来自的重复项dbList.
迭代通过它时,您无法添加到sessionList.
for (Iterator<testVO> dbIterator = dbList.listIterator(); dbIterator.hasNext(); ) {
testVO voDB = dbIterator.next();
List<testVO> toBeAdded = new LinkedList<>();
for (Iterator<testVO> sessionIterator = sessionList.iterator(); sessionIterator.hasNext();) {
testVO voSession = (testVO) sessionIterator.next();
if(voDB.getQuestionID().intValue() == voSession.getQuestionID().intValue()){
//remove the object from sesion list
sessionIterator.remove();
//Add the object from DB to session list
//CANNOT DO: sessionList.add(voDB);
toBeAdded.add(voDB);
}
}
Collections.addAll(sessionList, toBeAdded);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |