Hallo,
ich habe ein Problem mit einer Fehlermeldung:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953)
at java.util.LinkedList$ListItr.next(LinkedList.java:886)
at Praktomat.storeCorrection(Praktomat.java:691)
at Shell.reviewCmd(Shell.java:309)
at Shell.main(Shell.java:154)
LinkedList<Correction> corrections;Correction actualCor =newCorrection(taskId, mN, mark, correction);if(containsCorrection(taskId, mN)){
index =-1;for(Correction cor : corrections){//Hier kommt die Fehlermeldung: Praktomat.storeCorrection(Praktomat.java:691)if(cor.getId()== taskId && cor.getmN()== mN){
index = corrections.indexOf(cor);if(index >=0){
corrections.remove(index);
corrections.add(actualCor);}}}}else{
corrections.add(actualCor);}
Ich habe eine Liste mit Korrekturen, wenn eine Korrektur schon vorhanden ist (containsCorrection),
soll diese Korrektur überschrieben werden. Dazu muss ich die alte Korrektur rauslöschen(die ich anhand vom Index gesucht habe) und mit der neuen übergebenen Korrektur überschreiben.
Habt ihr eine Idee, wo der Fehler sein könnte.
Falls noch Code zum Verständnis fehlt, einfach Bescheid geben!
ich bin mir nicht sicher, ob ich richtig verstanden hab, was ihr gemeint habt...
muss ich meine komplette methode ändern, weil ich die so nicht anwenden kann
oder reicht es einfach, wenn ich das .remove und .add aus der for-schleife nehme?
ich bin mir nicht sicher, ob ich richtig verstanden hab, was ihr gemeint habt...
muss ich meine komplette methode ändern, weil ich die so nicht anwenden kann
oder reicht es einfach, wenn ich das .remove und .add aus der for-schleife nehme?
Wollt ihm nur n Tipp geben, aber break ist ja auch in Ordnung.
Nur wird schwer, wenn er eben mehr Elemente, wie bei meinem Pseudo code, rauslöschen will.
Edit: Dann solltest du das so machen wie ich es geschrieben habe @TO.
man beachte bitte, dass ich das Wort "so" benutzt habe, nicht dass hier wieder eine Diskussion entsteht:
Darauf hätte ich auch keine Lust ^^
Wollt ihm nur n Tipp geben, aber break ist ja auch in Ordnung.
Nur wird schwer, wenn er eben mehr Elemente, wie bei meinem Pseudo code, rauslöschen will.
Edit: Dann solltest du das so machen wie ich es geschrieben habe @TO.
Richtig, meine Lösung löscht NUR DAS ERSTE GEFUNDENE ELEMENT, willst du mehr als ein Objekt ändern, musst du den Code von x22 nehmen, oder dir was ganz unschönes basteln