at oldSet.removeAll(deleted);這個異常被拋出Java Set「ConcurrentModificationException」
ConcurrentModificationException的
我加上 「同步」 的關鍵字,但沒有任何變化!
Set<Employees> deleted;
Set<Employees> oldSet = new TreeSet<Employees>(new EmployeeComparator());
oldSet.addAll(employeesListDB);
Set<Employees> newSet = new TreeSet<Employees>(new EmployeeComparator());
newSet.addAll(employeesList);
try{
deleted = Sets.difference(oldSet, newSet);
Set<Employees> added = Sets.difference(newSet, oldSet);
***oldSet.removeAll(deleted);***
oldSet.addAll(added);
}catch(Exception ex){
System.out.println(ex.getMessage());
}
我還試圖迭代但出現相同異常:
Iterator it = oldSet.iterator();
Employees e;
while(it.hasNext())
{
e= (Employees)it.next();
if(oldSet.contains(e))
oldSet.iterator().remove();
}
這有一個解決方案[這裏](http://stackoverflow.com/questions/1496180/concurrent-modification-exception)。 –
nope,它不能解決我的問題,我正在使用Set not List! –
使用迭代器是它的關鍵。 –