Hey SO Gurus im ein Heck eines Auftrags mit diesem Code mitjava.util.ConcurrentModificationException in Non Multithreaded-Programm
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());
}
Wenn ich mein Programm zum ersten Mal den Code versucht, laufen zu laufen! Er hat diesen Fehler
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)
um ein bisschen glotzten Nachdem dies ein Fehler zu sein scheint, die normalerweise mit einem Gewinde passiert, warum sie versuchen, die gleiche Ressource gleichzeitig zugreifen, aber das ist, was ich überhaupt in diesem System nicht immer im, Multithreading.
Kann jemand erklären, warum dies geschieht, oder ein Hack denken um es
Vielen Dank^_^
Danke, das hat einen großen Teil meines Codes funktioniert – Gwilym