Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中迭代器.next()上的并发异常_Java_List_Iterator_Next - Fatal编程技术网

Java中迭代器.next()上的并发异常

Java中迭代器.next()上的并发异常,java,list,iterator,next,Java,List,Iterator,Next,这是一个代码段,用于移动到链表中的下一个元素。调试时,itrPlaylist.next()将触发ConcurrentModificationException。我读到在迭代时不应该修改列表。那么,在这种情况下,我错在哪里了?如何解决? 提前谢谢 public boolean nexxt() { if(this.itrPlaylist.hasNext()) { if(!bForward) { bForward = true;

这是一个代码段,用于移动到链表中的下一个元素。调试时,itrPlaylist.next()将触发ConcurrentModificationException。我读到在迭代时不应该修改列表。那么,在这种情况下,我错在哪里了?如何解决?

提前谢谢

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。你是对的。错误是我在填充列表之前就初始化了迭代器。