Почему не проходило валидацию с моим решением???
public class Example {
    public static void main(String[] args) {
        Set<Cat> cats = createCats();


        //напишите тут ваш код. step 3 - пункт 3
        Iterator<Cat> iterator = cats.iterator();
        while (iterator.hasNext())  {
            iterator.next();
            iterator.next();
            cats.remove(iterator.next());        //да, колхоз, но это последнее решение из многих на проверку, потом оказалось что не в нем проблема.
        }
        printCats(cats);
    }

    public static Set<Cat> createCats() {
        //напишите тут ваш код. step 2 - пункт 2
        Set<Cat> catsSet = new HashSet<>();
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();
        Cat cat3 = new Cat();
        catsSet.add(cat1);                 // ВОТ КОРЕНЬ ЗЛА! Потому что для правильного решения требуется cats.add(new Cat()) три раза.
        catsSet.add(cat2);
        catsSet.add(cat3);

        return catsSet;
    }

    public static void printCats(Set<Cat> cats) {
        // step 4 - пункт 4
        for (Cat catsPrint : cats)  {
            System.out.println(catsPrint);
        }
    }

    // step 1 - пункт 1
    public static class Cat {
        Cat()  {
        }
    }
}