Подскажите, почему не работает такой способ удаления кошек из объединенной коллекции? Вроде все логично - проходим по объединенной коллекции Pets и если объект относится к классу Cat (проверяем это через instanceof), то удаляем его....
public static void removeCats(Set<Object> pets, Set<Cat> cats) {

    Iterator<Object> iterator = pets.iterator();

    while (iterator.hasNext()){
        if( iterator instanceof Cat){
            iterator.remove();
        }
    }
}