Удалять элемент из массива только во время итерации, используя Iterator.remove()
.
Строка for(String st: ar) {
немного вводит в заблуждениеВы фактически создаете итератор за кулисами, который используется для этой итерации.Если вам нужно удалить элементы внутри итерации, вам нужно явно использовать итератор, чтобы вы могли вызвать iterator.remove()
.
ArrayList<String> ar = new ArrayList<String>();
ar.add("a");
ar.add("b");
ar.add("c");
ar.add("a");
ar.add("e");
Iterator<String> it = ar.iterator();
while (it.hasNext()) {
String st = it.next();
System.out.println("st="+st);
if (st.equals("a")) {
it.remove();
}
}