тестил в строке , вот вывод
Solution$Dog@77f03bb1
Solution$Cat@73035e27
Solution$Cat@64c64813
Solution$Dog@326de728
Solution$Dog@21a06946
Solution$Cat@f5f2bb7
Solution$Dog@483bf400
Solution$Dog@77f03bb1
Solution$Dog@326de728
Solution$Dog@21a06946
Solution$Dog@483bf400
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/*
Множество всех животных
*/
public class Solution {
public static class Cat
{
Cat()
{
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
}
public static class Dog
{
Dog()
{
}
}
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 < 3; i++)
{
result.add(new Cat());
}
return result;
}
public static Set<Dog> createDogs() {
HashSet<Dog> resultj = new HashSet<Dog>();
for (int i = 0; i < 4; i++)
{
resultj.add(new Dog());
}
return resultj;
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
HashSet<Object> arr = new HashSet<>();
Iterator iterator = cats.iterator();
for (int i = 0; i < cats.size(); i++)
{
arr.add(iterator.next());
}
Iterator iterator1 = dogs.iterator();
for (int i = 0; i < dogs.size(); i++)
{
arr.add(iterator1.next());
}
return arr;
}
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
pets.removeAll(cats);
}
public static void printPets(Set<Object> pets)
{
pets.forEach(System.out::println);
}
}