gpt4 book ai didi

Java:java.util.ConcurrentModificationException 无法解释

转载 作者:行者123 更新时间:2023-12-02 04:39:33 28 4
gpt4 key购买 nike

List<ModelElement> elementList; //holds all model element
List<UUID> selectedElements;

public ModelElement getElement(UUID id)
{
ModelElement element = null;
for (ModelElement e : elementList){
if (e.getId().equals(id) ){
element = e;
break;
}
}
return element;
}

public void deleteElement(UUID id)
{
selectedElements.remove(id);
elementList.remove(getElement(id));
}

public void deleteElement(List<UUID> ids)
{
for (UUID id : ids)
{
deleteElement(id);
}

}

为什么此代码会创建 java.util.ConcurrentModificationException?如果我调用单一 id 版本,它工作正常,但如果我使用列表版本,它会崩溃。

最佳答案

为了避免 CME,如果您想使用 selectedElements 列表调用 deleteElement(),请尝试使用迭代器:

public void deleteElement(List<UUID> ids)
{
Iterator idIter = ids.iterator();
while(idIter.hasNext())
{
UUID id = (UUID)idIter.next();
elementList.remove(getElement(id));
idIter.remove();
}
}

关于Java:java.util.ConcurrentModificationException 无法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30330677/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com