Так как перебор в 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());
    }
}