Todos sabemos que no puede hacer lo siguiente por ConcurrentModificationException: for (Object i : l) { if (condition(i)) { l.remove(i); } } Pero esto aparentemente funciona a veces, pero no siempre. Aquí hay un código específico: public static void main(String[] args) {