Hallo,
ich habe eine Map<String, Foo> aus der ich einige nicht genutzte Einträge löschen möchte. Dazu habe ich eine Liste<String> in der der alle Werte stehen, die in der Map stehen bleiben sollen:
Funktioniert auch tendenziell, dauert aber bei einer Größe von über 100TSD Einträgen in jeweils Liste und Map Ewigkeiten! Das wird wohl am contains liegen, nehme ich an?
Gibt es da eine effizientere Lösung?
Danke
noise
ich habe eine Map<String, Foo> aus der ich einige nicht genutzte Einträge löschen möchte. Dazu habe ich eine Liste<String> in der der alle Werte stehen, die in der Map stehen bleiben sollen:
Java:
for (Foo foo : foos.values()) { // foos ist die Map aus der gelöscht werden soll
//otherFoos ist die Liste deren Einträge in der Map bleiben sollen
if (!otherFoos.contains(foo.getId().toString())) {
foos.remove(foo);
}
}
Funktioniert auch tendenziell, dauert aber bei einer Größe von über 100TSD Einträgen in jeweils Liste und Map Ewigkeiten! Das wird wohl am contains liegen, nehme ich an?
Gibt es da eine effizientere Lösung?
Danke
noise