相关疑难解决方法(0)

非多线程程序中的java.util.ConcurrentModificationException

嘿SO Guru,我对这段代码有一点工作

public void kill(double GrowthRate, int Death)
{
    int before = population.size();
    for (PopulationMember p : population)
    {
        int[] probs = ProbablityArrayDeath(GrowthRate,Death,(int)p.fitness());
        if (probs[RandomNumberGen.nextRandomInt(0, 99)]==0)
        {
            population.remove(p);
        }
    }
    System.out.println("Intial Population: "+before+", Deaths:"+(before-          population.size())+", New Population: "+population.size());
}
Run Code Online (Sandbox Code Playgroud)

当我第一次尝试运行代码时运行我的程序时,它会遇到此错误

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
    at java.util.HashMap$KeyIterator.next(HashMap.java:828)
    at Genetics.Population.kill(Population.java:181)
    at Genetics.Population.run(Population.java:47)
    at Control.Main.main(Main.java:35)
Run Code Online (Sandbox Code Playgroud)

稍微晃了一下这似乎是一个错误,通常会发生在线程为什么他们尝试同时访问相同的资源,但这就是让我在这个系统中完全没有多线程的原因.

有人可以解释为什么会这样,或者想到一个黑客来解决它

非常感谢^ _ ^

java collections multithreading java.util.concurrent

15
推荐指数
3
解决办法
2万
查看次数

grails删除表/域类中的所有数据,即"deleteAll"

我有一个域类,Widget,我需要删除所有实例 - 清除它.之后,我将加载新数据.你有什么建议这样做的机制?

PS注意这不是在自举时间,而是在"运行时".

grails grails-orm

11
推荐指数
1
解决办法
2万
查看次数