【问题标题】:Java error when removing element from list of (list of integers) [duplicate]从(整数列表)列表中删除元素时出现Java错误[重复]
【发布时间】:2016-09-06 08:38:46
【问题描述】:

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

这是我的代码:

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)

有人知道我的代码有什么问题吗? 谢谢各位!

【问题讨论】:

    标签: java list iterator


    【解决方案1】:

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

    删除

    【讨论】:

    • 所以我应该使用 for 循环吗?
    • 它应该可以工作。
    • 是的,它有效,谢谢!
    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2021-03-08
    • 2015-01-05
    相关资源
    最近更新 更多