package com.javarush.task.task08.task0820;

import java.util.HashSet;
import java.util.Iterator;
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);
        printPets(pets);

        removeCats(pets, cats);
        printPets(pets);
    }

    public static Set<Cat> createCats() {
        HashSet<Cat> result = new HashSet<Cat>();

        for (int i = 0; i < 4; i++) {
            Cat cat = new Cat();
            result.add(cat);
        }
        //напишите тут ваш код

        return result;
    }

    public static Set<Dog> createDogs() {

        HashSet<Dog> result2 = new HashSet<Dog>();

        for (int i = 0; i < 3; i++) {
            Dog dog = new Dog();
            result2.add(dog);
        }

        //напишите тут ваш код
        return result2;
    }

    public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
        Set<Object> pets = new HashSet<>();
        pets.addAll(cats );
        pets.addAll(dogs );

        //напишите тут ваш код
        return pets;
    }

    public static void removeCats(Set<Object> pets, Set<Cat> cats) {

        Iterator<Object> iterator = pets.iterator();
        Iterator<Cat> iterator1 = cats.iterator();
        while (iterator.hasNext() && iterator1.hasNext()){
            if (iterator.next().equals(iterator1.next()))
                iterator.remove();
        }

        //напишите тут ваш код
    }

    public static void printPets(Set<Object> pets) {

        for(Object text:pets) {
            System.out.println(text);
        }
        //напишите тут ваш код
    }

    public static class Cat { //реализовал п.1
    }
    public static class Dog {
    }
    //напишите тут ваш код
}