Java中迭代器.next()上的并发异常
这是一个代码段,用于移动到链表中的下一个元素。调试时,itrPlaylist.next()将触发ConcurrentModificationException。我读到在迭代时不应该修改列表。那么,在这种情况下,我错在哪里了?如何解决? 提前谢谢Java中迭代器.next()上的并发异常,java,list,iterator,next,Java,List,Iterator,Next,这是一个代码段,用于移动到链表中的下一个元素。调试时,itrPlaylist.next()将触发ConcurrentModificationException。我读到在迭代时不应该修改列表。那么,在这种情况下,我错在哪里了?如何解决? 提前谢谢 public boolean nexxt() { if(this.itrPlaylist.hasNext()) { if(!bForward) { bForward = true;
public boolean nexxt() {
if(this.itrPlaylist.hasNext())
{
if(!bForward)
{
bForward = true;
itrPlaylist.next();
}
System.out.println("Now playing : " + itrPlaylist.next());
return true;
}
else
{
System.out.println("Reached end of " + this.getPlaylistName() + " playlist !");
}
return false;
}
在哪里定义了播放列表?类似
itrPlaylist = list.iterator();
上述分配应在对列表进行所有插入之后发生。看起来您已经为itrPlaylist创建了一个实例变量。我想你可能在做什么
list.add(value);
初始化播放列表后
在这种情况下,代码将抛出上述异常。当迭代器已经初始化时,迭代器之外的其他代码修改列表时,就会发生这种情况。首先调用next()twiceThank you@aatwork。你是对的。错误是我在填充列表之前就初始化了迭代器。