java如何在删除集合中的项时处理ConcurrentModificationException?
我正在尝试删除列表中出现5次的String
。这就是我尝试过的:
for(String obj : list1)
{
if(new ArzList().countOccurrence(list1, obj ) == 5)
{
list2.add(obj);
list1.removeAll(Collections.singleton(obj));
}
else{
list3.add(obj);
list1.removeAll(Collections.singleton(obj));
}
}
但我每次都得到java.util.ConcurrentModificationException
我如何解决它
# 1 楼答案
您只能在循环期间使用迭代器从集合中安全地删除元素
# 2 楼答案
不允许通过迭代器中途修改数据结构
您可以在此处使用普通循环:
# 3 楼答案
您不应该在同一个列表中进行迭代和删除
创建原始列表的副本。迭代原始列表,但从副本版本中删除项。返回列表的副本