Почему при удалении из SET таким образом:
for(Integer i : set){
if( i > 10){
set.remove(i);
}
}
выскакивает ошибка:
java.util.ConcurrentModificationExceptionpackage com.javarush.task.task08.task0814;
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
/*
Больше 10? Вы нам не подходите
*/
public class Solution {
public static Set<Integer> createSet() {
// напишите тут ваш код
Set<Integer> mySet = new HashSet<Integer>();
mySet.add(1);
mySet.add(2);
mySet.add(3);
mySet.add(4);
mySet.add(5);
mySet.add(6);
mySet.add(7);
mySet.add(8);
mySet.add(9);
mySet.add(11);
mySet.add(10);
mySet.add(12);
mySet.add(13);
mySet.add(14);
mySet.add(15);
mySet.add(16);
mySet.add(17);
mySet.add(18);
mySet.add(19);
mySet.add(20);
mySet.add(20);
mySet.add(20);
return mySet;
}
public static Set<Integer> removeAllNumbersGreaterThan10(Set<Integer> set) {
// // Вариант 1 рабочий
// Iterator<Integer> setIterator = set.iterator();
// while(setIterator.hasNext()) {
// Integer nextInt = setIterator.next();
// if (nextInt>10) {
// setIterator.remove();
// }
// }
for(Integer i : set){
if( i > 10){
set.remove(i);
}
}
return set;
}
public static void main(String[] args) {
Set<Integer> set = createSet();
// System.out.println(set);
Set<Integer> sett = removeAllNumbersGreaterThan10( set);
// System.out.println(sett);
}
}