Huhuu Forum,
Ich habe folgende HashMap. Objekte mit einem älteren Zeitstempel als TIMEOUT_LOCATION_TABLE sollen rausgeworfen werden:
und bekomme folgende Exception
geworfen in der Zeile 10 mit
Hat jemand Rat? Ich danke im voraus.
Mfg Huck
Ich habe folgende HashMap. Objekte mit einem älteren Zeitstempel als TIMEOUT_LOCATION_TABLE sollen rausgeworfen werden:
Java:
private HashMap<String, SpecialObj> myHashMap = new private HashMap<String, SpecialObj>();
// bla HashMap voll machen
public void updateHashMapEntries(long cTime, LogFileWriter l) {
Iterator<SpecialObj> it = this.myHashMap.values().iterator();
boolean mode = false;
SpecialObj v;
while ( it.hasNext() ){
v = it.next();
long vts = v.getTimeStamp();
if( vts + Bla.TIMEOUT_LOCATION_TABLE < cTime ) {
if (!mode) {
l.getLogRibbon();
l.writeLog("[UPDATE] TimeOut expired! Update Location Table!");
mode = true;
}
String s = v.getId();
this.myHashMap.keySet().remove( s );
l.writeLog( " [-] "+s+") with "+this.myHashMap.size()+
" entries | "+TimeUnit.NANOSECONDS.toMillis(vts)+
" + "+TimeUnit.NANOSECONDS.toMillis(Bla.TIMEOUT_LOCATION_TABLE)+
" = "+TimeUnit.NANOSECONDS.toMillis(vts + Bla.TIMEOUT_LOCATION_TABLE) );
}
}
}
und bekomme folgende Exception
Code:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$ValueIterator.next(HashMap.java:822)
Java:
v = it.next();
Hat jemand Rat? Ich danke im voraus.
Mfg Huck
Zuletzt bearbeitet: