从(整数列表)列表中删除元素时出现Java错误

时间:2016-09-06 08:38:46

标签: java list iterator

删除我的(整数列表)列表中的一个元素时出错。 我使用迭代器删除该元素

这是我的代码:

List<List<Integer>> list = new ArrayList<List<Integer>>();
....
....
Iterator<List<Integer>> myListIterator = list.iterator();
int ct1 = 0;
while (myListIterator.hasNext()) {
    List<Integer> val = myListIterator.next(); // here is the error 
    if(ct1 == val.get(0))
        list.remove(val);
    ct1++;
}

我收到此错误消息:

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.util.ArrayList$Itr.next(Unknown Source)

有谁知道我的代码出了什么问题? 谢谢你们!

1 个答案:

答案 0 :(得分:2)

因为您在使用迭代器时删除了一个元素。一个可能的解决方案是,使用带索引的循环,您可以安全地删除该元素。您也可以使用 myListIterator.remove();

删除