Вроде бы сделал по заданию.
Но не понимаю вывода. По идее должен вывести 4 кота и 3 собаки, метод удаления работает , но котов он в выводе не удаляет..
вот такой вывод получается: 4 кота и 6 собак - что я делаю не так?
com.javarush.task.task08.task0820.Solution$Dog@c81cdd1
com.javarush.task.task08.task0820.Solution$Cat@543c6f6d
com.javarush.task.task08.task0820.Solution$Dog@43738a82
com.javarush.task.task08.task0820.Solution$Cat@13eb8acf
com.javarush.task.task08.task0820.Solution$Cat@51c8530f
com.javarush.task.task08.task0820.Solution$Dog@1fc2b765
com.javarush.task.task08.task0820.Solution$Cat@7403c468
com.javarush.task.task08.task0820.Solution$Dog@c81cdd1
com.javarush.task.task08.task0820.Solution$Dog@43738a82
com.javarush.task.task08.task0820.Solution$Dog@1fc2b765
package com.javarush.task.task08.task0820;
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);
printPets(pets);
removeCats(pets, cats);
printPets(pets);
}
public static Set<Cat> createCats() {
Set<Cat> cats = new HashSet<Cat>();
cats.add(new Cat());
cats.add(new Cat());
cats.add(new Cat());
cats.add(new Cat());
return cats;
}
public static Set<Dog> createDogs() {
Set<Dog> dogs = new HashSet<Dog>();
dogs.add(new Dog());
dogs.add(new Dog());
dogs.add(new Dog());
return dogs;
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
Set<Object> pets = new HashSet<Object>(cats);
pets.addAll(dogs);
return pets;
}
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
pets.removeAll(cats);
}
public static void printPets(Set<Object> pets) {
for(Object pet : pets) {
System.out.println(pet);
}
}
public static class Cat {
}
public static class Dog {
}
}