从ArayList中删除对象会引发异常

时间:2016-03-01 01:52:41

标签: java exception arraylist

/**
 * Write a mehod that removes the movie with a given title
 */
public void removeMovie(String title)
{
    for (Movie movie : movies){
        if(movie.getTitle().equals(title)){
            movies.remove(movie);
        }
    }
}

如果有人需要我发布,还有另一个名为Movie的课程。这引发了异常。为什么呢?

1 个答案:

答案 0 :(得分:0)

您尝试从循环播放的列表中删除元素,因此会抛出并发修改异常。有很多方法可以解决这个问题:

  • 使用迭代器
  • 列出要删除的元素,并在循环中添加要删除的元素,然后从中删除所有这些元素
  • 在每个循环中使用for循环而不是a,因为当你删除一个元素时会考虑移位(即我 - )
  • 向后循环列表
  • 可能是我错过的其他人

从这里阅读解决方案: How to avoid "ConcurrentModificationException" while removing elements from `ArrayList` while iterating it?