public class RemoveFromArrayList
{
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
ArrayList<Integer> list2 = new ArrayList<>(list);
ArrayList<Integer> list3 = new ArrayList<>(list);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer number = iterator.next();
if (number % 2 == 0) { // Remove even
numbers
iterator.remove();
}
}
System.out.println(list); // Output: [1,
3]
for (Iterator<Integer> iterator2 = list2.iterator(); iterator2.hasNext(); ) {
Integer number = iterator2.next();
if (number % 2 == 0) { // Remove even
numbers
iterator2.remove();
}
}
System.out.println(list2); // Output: [1,
3]
try {
for (Integer number : list3) {
if (number % 2 == 0) {
list3.remove(number); // This will
cause ConcurrentModificationException
}
}
} catch (Exception e) {
System.out.println("Exception:
" + e);
}
System.out.println(list3); // Output: [1,
3]
}
}
[1, 3]
[1, 3]
Exception: java.util.ConcurrentModificationException
[1, 3, 4]