Para eliminar algunos elementos de una ArrayList mientras iteramos sobre ArrayList, necesitamos usar Iterator.
Integer[] arr = {1,2,3,4,5,6}; ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(arr)); System.out.println(list); Iterator<Integer> iter = list.iterator(); while(iter.hasNext()){ int i = iter.next(); if(i==5) iter.remove(); } System.out.println(list); |
Si el elemento se elimina mediante el método ArrayList.remove (i) durante una iteración como la siguiente, el programa lanzará una ConcurrentModificationException.
for(int i: list){ if(i==2) list.remove(list.indexOf(i)); } |
java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) at java.util.ArrayList$Itr.next(Unknown Source)
Ejemplos de API de Java: java.util.Iterator