Так как перебор в Set невозможен из-за отсутствия индексов, решил передать список чисел в ArrayList, там удалить числа неудовлетворяющие условию задачи, а затем оставить в оригинальном списке Set числа, совпадающие с обработанным списком ArrayList. Но что-то идет не так. Код не компилится, в терминал сыплются ошибки. Что я делаю не так?
P.S. Сделал выводы в консоль для отслеживания результатов действий на разных уровнях выполнения кода. Прошу игнорировать их наличие.
package com.javarush.task.task08.task0814;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/*
Больше 10? Вы нам не подходите
*/
public class Solution {
public static Set<Integer> createSet() {
Set<Integer> set = new HashSet<>();
set.add(0); set.add(1); set.add(2); set.add(3);
set.add(4); set.add(5); set.add(6); set.add(7);
set.add(8); set.add(9); set.add(10); set.add(11);
set.add(12); set.add(13); set.add(14); set.add(15);
set.add(16); set.add(17); set.add(18); set.add(19);
return set;
}
public static Set<Integer> removeAllNumbersGreaterThan10(Set<Integer> set) {
List<Integer> list = new ArrayList<>(set);
System.out.println("аррэй лист сразу после заполнения из сэта "+list);
for (Integer i: list) {
if (i>10) list.remove(i);
}
System.out.println("аррэй лист после удаления элементов больше десяти "+list);
set.retainAll(list);
System.out.println(set);
return set;
}
public static void main(String[] args) {
removeAllNumbersGreaterThan10(createSet());
}
}