Hallo,
folgende Datenstruktur id -> Liste(String1, String2,...), also Hashtable mit Liste als Value. Jetzt möchte ich unter bestimmten Bedingungen Strings aus der Liste löschen.
Ich erhalte aber eine ConcurrentModificationException. Und sehe nicht wo der Fehler liegt.
Gruß
Nick
folgende Datenstruktur id -> Liste(String1, String2,...), also Hashtable mit Liste als Value. Jetzt möchte ich unter bestimmten Bedingungen Strings aus der Liste löschen.
Code:
// keys und values sind Enumerations für den Hashtable
// DBObject: einfache Datentypen in Object kapseln
// vorher festgelegt ist ein Start- (time1) und Enddatum (time2): z.B 1063231200000 bis 1063317599962
ListIterator i;
String val;
while (keys.hasMoreElements()) {
key = (DBObject)keys.nextElement();
valueList = ((DBObject)values.nextElement()).getList(); // liefert Liste
i = valueList.listIterator();
while(i.hasNext()) {
val = i.next().toString(); // Liste hat Elemente der Form 123456789#123 (long#int)
str = val.split("#");
timestamp = Long.parseLong(str[0]);
if (!(time1 <= timestamp && timestamp <= time2)) {
valueList.remove(val);
}
}
}
Ich erhalte aber eine ConcurrentModificationException. Und sehe nicht wo der Fehler liegt.
Gruß
Nick