删除我的(整数列表)列表中的一个元素时出错。 我使用迭代器删除该元素
这是我的代码:
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)
有谁知道我的代码出了什么问题? 谢谢你们!
答案 0 :(得分:2)
因为您在使用迭代器时删除了一个元素。一个可能的解决方案是,使用带索引的循环,您可以安全地删除该元素。您也可以使用 myListIterator.remove();
删除