我有对象的 LinkedList 和一个迭代器。我知道当您在运行迭代器时尝试修改列表时会抛出这个 ConcurrentModificationException 。但就我而言,我不明白这个修改是在哪里进行的。
迭代器如下所示:
private static void insertTasks(Task t) {
if(eventQueue.size() == 0) {
eventQueue.addFirst(tsk);
return;
}
int pos = 0;
while (itr.hasNext()){
//The line below throws the exception
if (t.getArrivalTime() <= itr.next().getArrivalTime() )
{
break;
}
pos++;
}
}
我insertTasks
从另一种方法调用此方法,如下所示:
tsk = null;
tsk = new Task(1,"P1",1,4.0f,1.5f,0.0f,8.0f);
insertTasks(tsk);
tsk = null;
tsk = new Task(0,"P0",2,5.0f,2.5f,1.0f,10.0f);
insertTasks(tsk);
getArrivalTime
对象中的看起来Task
像:
public float getArrivalTime() { return arrivalTime; }
我的问题是,我在哪里做这个修改?我运行它的while
循环iterator
没有做任何修改。可以 ?
我错过了什么吗?