10 Aralık 2009, PERŞEMBE
üzerinden yineleme ve bir harita çıkarma
Yapıyordum:
for (Object key : map.keySet())
if (something)
map.remove(key);
bir ConcurrentModificationException attı, o yüzden değiştirdim:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
bu, ve Haritayı değiştir diğer yordamları senkronize engeller.
daha iyi bir çözüm var mı?
eğer kimse daha iyi bir çözüm ile, ilk söylemek gelirse hayır kene ;) alır
CEVAP
10 Aralık 2009, PERŞEMBE
Burada bir for döngüsü içinde yineleyici giriş kaldırmak için kullanmak için bir kod örneği.
Map<String, String> map = new HashMap<String, String>() {
{
put("test", "test123");
put("test2", "test456");
}
};
for(Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext(); ) {
Map.Entry<String, String> entry = it.next();
if(entry.getKey().equals("test")) {
it.remove();
}
}
Bunu PaylaÅŸ:

Neden sesleniyorsun .python bir sözlük...
Büyük sonuç kümeleri üzerinden yinelem...
Güvenli onları üzerinden yineleme sıra...
sqlalchemy üzerinden yineleme yöntemi ...
EÄŸer sil dersen ne olur() end baÅŸlamak...