Hallo!
Ich bekomme eine Concurrent Modification Exception und vermute dass dies an der Art der Modifikation meines Sets liegt. Ich versuche das Problem mal herunterzubrechen:
Ich habe ein geordnetes TreeSet, dass Autotypen (Objekte mit Attributen Name und Anzahl) enthält (VW Golf, VW Passat, VW Golf1, VW Golf2, Opel Astra,...)
Nun möchte ich, dass alle Elemente miteinander verglichen werden und eine Funktion checkGolf(Auto1, Auto2) ausgeführt wird, die erkennt dass VW Golf und VW Golf1 beide VW Golf sind und dem VW Golf -Objekt das Attribut Anzahl inkrementiert. ---dies funktioniert auch---
Das Problem: ich möchte jetzt nur noch das modifizierte VW Golf - Objekt in meinem Set haben, keine Golf1,2 usw.!
Mein Ansatz:
Ich bekomme eine Concurrent Modification Exception und vermute dass dies an der Art der Modifikation meines Sets liegt. Ich versuche das Problem mal herunterzubrechen:
Ich habe ein geordnetes TreeSet, dass Autotypen (Objekte mit Attributen Name und Anzahl) enthält (VW Golf, VW Passat, VW Golf1, VW Golf2, Opel Astra,...)
Nun möchte ich, dass alle Elemente miteinander verglichen werden und eine Funktion checkGolf(Auto1, Auto2) ausgeführt wird, die erkennt dass VW Golf und VW Golf1 beide VW Golf sind und dem VW Golf -Objekt das Attribut Anzahl inkrementiert. ---dies funktioniert auch---
Das Problem: ich möchte jetzt nur noch das modifizierte VW Golf - Objekt in meinem Set haben, keine Golf1,2 usw.!
Mein Ansatz:
Java:
public Set findDuplicates (Set autoTypen){
for (Iterator autoIter = autoTypen.iterator(); autoIter.hasNext();){
Auto auto1 = (Auto) autoIter.next();
for (Iterator autoIter2 = autoTypen.iterator(); autoIter2.hasNext();){
Auto auto2 = (Auto) autoIter2.next();
if (checkGolf(auto1, auto2)){
//first remove both object from set then add the modified one
autoTypen.remove(auto1);
autoTypen.remove(auto2);
modify(auto1);
autoTypen.add(auto1);
}
}
return autoTypen;
}