public void execute(HashMap<String,Coordonnee >c)
{
c.forEach((k,v) -> {
p = m.getMin(c);
sky.add(p);
c.remove(p.getNom());
});
}
这会抛出java.util.ConcurrentModificationException
。
我该如何解决?
答案 0 :(得分:0)
map.entrySet().removeIf
使用迭代器:
Iterator<Object> it = map.keySet().iterator();
while (it.hasNext())
{
it.next();
if (something)
it.remove();
}
答案 1 :(得分:0)
在循环播放时,您无法删除列表中的元素。你应该使用Iterator。
public void execute(HashMap<String,Coordonnee >c)
{
Iterator cItr = c.iterator();
while(cItr.hasNext())
{
c = cItr.next();
p = m.getMin(c);
sky.add(p);
cItr.remove(p.getNom());
}
}