Программа в main вызывает метод removeAllNumbersGreaterThan10, которому в аргумент передается метод createSet, возвращающий хэшсет 20 элементов. Компилятор указывает на ошибки в 17 и 25 строках. Объясните, пожалуйста, в чем дело?
package com.javarush.task.task08.task0814;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Solution {
    public static HashSet<Integer> createSet() {
        HashSet<Integer> hashSet = new HashSet<Integer>();
        for (int i = 0; i < 20; i++) {
            hashSet.add(i);
        }
        return hashSet;
    }

    public static HashSet<Integer> removeAllNumbersGreaterThan10(HashSet<Integer> set) {
        for (Integer i : set) {
            if (i < 10)
                set.remove(i);
        }
        return set;
    }

    public static void main(String[] args) {
        HashSet<Integer> setnext = removeAllNumbersGreaterThan10(createSet());
        System.out.println(setnext.contains(1));
        System.out.println(setnext.contains(4));
        System.out.println(setnext.contains(9));
    }
}