Почему так не проходит решение?
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
        Set<Object> copy=new HashSet<Object>(pets);
        for(Object c:copy){
            if(c instanceof Cat){
                pets.remove(c);
            }
        }
а через removeAll решение прошло? итог один и тот же
pets.removeAll(cats);