Listeden öğe kaldırma
Bir liste içinde döngü yaparken, bir koşula bağlı olarak listedeki bir öğeyi kaldırmak istiyorum. Aşağıdaki koda bakınız.
Bu bana bir ConcurrentModification
istisnası veriyor.
for (Object a : list) {
if (a.getXXX().equalsIgnoreCase("AAA")) {
logger.info("this is AAA........should be removed from the list ");
list.remove(a);
}
}
Bu nasıl yapılabilir?
100
3
Iterator
kullanmanız ve
fordöngüsü kullanmak yerine
iteratorüzerinde
remove()` çağırmanız gerekir.Bir liste üzerinde yineleme yaparken onu değiştiremezsiniz ve değiştirmemelisiniz. Bunu, kaldırılacak nesneleri geçici olarak kaydederek çözebilirsiniz: