у меня метод печатает всех животных в множестве pet
public static void printPets(Set<Object> pets) {
//напишите тут ваш код
for(Object pet: pets)
System.out.println(pet);
}
и работает он корректно, выдает сначала:
мурзик2
мурзик4
шарик3
мурзик1
шарик2
мурзик3
шарик1
а потом:
шарик3
шарик2
шарик1
но валидатор меня не пропускает, что я делаю не так?
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>();
//напишите тут ваш код
result.add(new Cat("мурзик1"));
result.add(new Cat("мурзик2"));
result.add(new Cat("мурзик3"));
result.add(new Cat("мурзик4"));
return result;
}
public static Set<Dog> createDogs() {
//напишите тут ваш код
HashSet<Dog> dogs = new HashSet<Dog>();
dogs.add(new Dog("шарик1"));
dogs.add(new Dog("шарик2"));
dogs.add(new Dog("шарик3"));
return dogs;
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
//напишите тут ваш код
HashSet<Object> pets = new HashSet<Object>();
pets.addAll(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 o: pets) {
System.out.println(o);
}
}
//напишите тут ваш код
public static class Dog{
public String name;
public Dog(){
this.name = "шарик";
}
public Dog(String name){
this.name = name;
}
@Override
public String toString() {
return name;
}
}
public static class Cat{
public String name;
public Cat(){
this.name = "мурзик";
}
public Cat(String name){
this.name = name;
}
@Override
public String toString() {
return name;
}
}
}