объясните пожалуйста, почему вот так:
Iterator iterator = set.iterator();
while (iterator.hasNext()){
int n = (int) iterator.next();
if(n<10)
set.remove(n);
}
return set;
и вот так:
for(Integer n :set)
if(n>10)
set.remove(n);
return set;
не правильно
но вот так:
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()) {
if (iterator.next() > 10) {
iterator.remove();
}
}
return set;
правильно
почему в первых двух случаях получается ConcurrentModificationException
что это вообще за исключение такое?
интернет плохо объясняет(