Решение уже есть, если раскоментить строчку, а цикл закоментить)) ВОПРОС! Почему подобные конструкции не работают?
for (Iterator<Object> iterPets = pets.iterator(); iterPets.hasNext();) {
            Object elemPets = iterPets.next();
            for (Iterator<Cat> iterCats = cats.iterator(); iterCats.hasNext();){
                if (elemPets.equals(iterCats.next()))
                    pets.remove(elemPets);
            }
        }
ИЛИ
for (Iterator<Object> iterPets = pets.iterator(); iterPets.hasNext();) {
            for (Iterator<Cat> iterCats = cats.iterator(); iterCats.hasNext();){
                if (iterPets.next().equals(iterCats.next()))
                    pets.remove(iterPets.next());
            }
        }