При проверке кода, валидатор говорит, чтоб удалялись коты, а не множество cats
Но ведь я удаляю из по одному
Где я ошибся?
package com.javarush.task.task08.task0820;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public static void main(String[] args) {
Set<Cat> cats = createCats();
Set<Dog> dogs = createDogs();
Set<Object> pets = join(cats, dogs);
removeCats(pets);
for (Object obj : pets) {
System.out.println(obj);
}
printPets(pets);
}
public static void printPets(Set<Object> pets) {
for (Object obj : pets) {
System.out.println(obj);
}
}
public static void removeCats(Set<Object> pets) {
Set<Object> copy = new HashSet<>(pets);
for (Object obj : copy) {
if (obj.getClass().toString().contains("Cat"))
pets.remove(obj);
}
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
Set<Object> set = new HashSet<>();
set.addAll(cats);
set.addAll(dogs);
return set;
}
public static class Cat {
}
public static class Dog {
}
public static Set<Cat> createCats() {
Set<Cat> set = new HashSet<>();
Cat barsik = new Cat();
Cat murzik = new Cat();
Cat pushok = new Cat();
Cat zayka = new Cat();
Collections.addAll(set, barsik, murzik, pushok, zayka);
return set;
}
public static Set<Dog> createDogs() {
Set<Dog> set = new HashSet<>();
Dog rex = new Dog();
Dog red = new Dog();
Dog bim = new Dog();
Collections.addAll(set, rex, red, bim);
return set;
}
}