Articles of concurrentmodification

La colección arroja o no lanza ConcurrentModificationException en función del contenido de la Colección

El siguiente código Java arroja una ConcurrentModificationException , como se esperaba: public class Evil { public static void main(String[] args) { Collection c = new ArrayList(); c.add(“lalala”); c.add(“sososo”); c.add(“ahaaha”); removeLalala(c); System.err.println(c); } private static void removeLalala(Collection c) { for (Iterator i = c.iterator(); i.hasNext();) { String s = i.next(); if(s.equals(“lalala”)) { c.remove(s); } } } […]

¿Se lanza una excepción ConcurrentModificationException al eliminar un elemento de una java.util.List durante la iteración de la lista?

@Test public void testListCur(){ List li=new ArrayList(); for(int i=0;i<10;i++){ li.add("str"+i); } for(String st:li){ if(st.equalsIgnoreCase("str3")) li.remove("str3"); } System.out.println(li); } Cuando ejecuto este código, arrojaré una ConcurrentModificationException. Parece que cuando elimino el elemento especificado de la lista, la lista no sabe que su tamaño ha sido cambiado. Me pregunto si este es un problema común con las […]

Excepción de modificación concurrente

Tengo este pequeño fragmento de código y me da la excepción de modificación simultánea. No puedo entender por qué sigo obteniéndolo, aunque no veo que se lleven a cabo modificaciones concurrentes. import java.util.*; public class SomeClass { public static void main(String[] args) { List s = new ArrayList(); ListIterator it = s.listIterator(); for (String a […]

¿Por qué no obtengo una java.util.ConcurrentModificationException en este ejemplo?

Nota: Iterator#remove() método Iterator#remove() . En el siguiente ejemplo de código, no entiendo por qué List.remove en el método main arroja ConcurrentModificationException , pero no en el método remove . public class RemoveListElementDemo { private static final List integerList; static { integerList = new ArrayList(); integerList.add(1); integerList.add(2); integerList.add(3); } public static void remove(Integer toRemove) { […]