• ,

Задача level08.lesson11.home02

Вроде бы все компилируется и на экран объекты выводятся, но задача не засчитывается, что я не правильно понял?

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/* Множество всех животных
1. Внутри класса Solution создать public static классы Cat, Dog.
2. Реализовать метод createCats, котороый должен возвращать множество с 4 котами.
3. Реализовать метод createDogs, котороый должен возвращать множество с 3 собаками.
4. Реализовать метод join, котороый должен возвращать объединенное множество всех животных — всех котов и собак.
5. Реализовать метод removeCats, котороый должен удалять из множества pets всех котов, которые есть в множестве cats.
6. Реализовать метод printPets, котороый должен выводить на экран всех животных, которые в нем есть. Каждое животное с новой строки
*/

public class Solution
{
public static void main(String[] args)
{
Setcats = createCats();
Setdogs = createDogs();

Setpets = join(cats, dogs);
printPets(pets);

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

public static SetcreateCats()
{
HashSetresult = new HashSet();

result.add(new Cat("Васька"));
result.add(new Cat("Попива"));
result.add(new Cat("Мурка"));
result.add(new Cat("Артоша"));

return result;
}

public static SetcreateDogs()
{
HashSetdogs = new HashSet();
dogs.add(new Dog("Спайк"));
dogs.add(new Dog("Жучка"));
dogs.add(new Dog("Полкан"));
return dogs;
}

public static Setjoin(Setcats, Setdogs)
{
HashSetpets = new HashSet();
pets.add(cats);
pets.add(dogs);
return pets;
}

public static void removeCats(Setpets, Setcats)
{
pets.remove(cats);
}

public static void printPets(Setpets)
{
Iteratorite = pets.iterator();
while (ite.hasNext()){
Object text = ite.next();
System.out.println(text);
}
}

public static class Cat{
String name;

public Cat(String name){
this.name = name;
}
}
public static class Dog{
String name;

public Dog(String name){
this.name = name;
}
}
}

7 комментариев

Brain
Нужно методы называть именно так как в задании просят.
EmperioAf
для лучшей читаемости кода лучше код оборачивать в
скобки
YulASB
Добрый день! Подскажите, на этом этапе написания кода
package com.javarush.test.level08.lesson11.home02;

import java.util.*;
//import java.util.Objects;
//import java.util.Set;

/* Множество всех животных
1. Внутри класса Solution создать public static классы Cat, Dog.
2. Реализовать метод createCats, котороый должен возвращать множество с 4 котами.
3. Реализовать метод createDogs, котороый должен возвращать множество с 3 собаками.
4. Реализовать метод join, котороый должен возвращать объединенное множество всех животных - всех котов и собак.
5. Реализовать метод removeCats, котороый должен удалять из множества pets всех котов, которые есть в множестве cats.
6. Реализовать метод printPets, котороый должен выводить на экран всех животных, которые в нем есть. Каждое животное с новой строки
*/

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> result = new HashSet<Dog>();
        for (int i = 0; i < 3; i++)
        {
            Dog dog = new Dog();
            result.add(dog);
        }
        //Написать тут ваш код
        return result;
    }

    public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs)
    {
        Set<Objects> pets = new HashSet<Objects>();
        pets.addAll(cats);
        pets.add(dogs);
        //Написать тут ваш код
        return pets;
    }

    public static void removeCats(Set<Object> pets, Set<Cat> cats)
    {
        //Написать тут ваш код
    }

    public static void printPets(Set<Object> pets)
    {
        //Написать тут ваш код
    }

    public  static class Cat
    {

    }

    public static class Dog
    {

    }
    //Написать тут ваш код
}

Идея ругается на вот какие строчки
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs)
    {
        Set pets = new HashSet();
        pets.addAll(cats);
        pets.add(dogs);
        //Написать тут ваш код
        return pets;
    }

Пишет addAll (java.util.Collection<?extends java.util.Objects>) in Set cannot be applied to (java.util.Set<com.javarush.test.level08.lesson11.home02.Solution.Cat>)
не понимаю в чем суть этой ошибки? Может кто поможет? Спасибо!
Sdu
Не совсем понятно, как все-таки у вас в коде:
Set<Objects> pets = new HashSet<Objects>();


или

Set pets = new HashSet();


Если второе, то нужно все ж типизировать сет.
YulASB
Set<Objects> pets = new HashSet<Objects>();
это что-то перекопировалось криво
Sdu
Не «Objects», а «Object»
YulASB
класс!!! спасибо большое. почитаю заодно чем «Objects» отличаются от «Object»
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.