Множество всех животных

  • 10
  • Недоступна
Занесем животных в множества. Сначала создадим классы Cat и Dog, затем — методы createCats и createDogs (возвращают множества с собаками и кошками), метод join, возвращающий конгломерат из множеств собак и кошек. На случай недобрососедства — метод removeCats, удаляющий из pets котов. И ещё — метод printPets, пусть выводит на экран всех обитателей pets.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (280)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Polina
Уровень 9, Москва
29 июня, 11:14
Пишет, что Пакет "sun.invoke.empty" не найден. Проверьте путь. В IDEA все норм работает, но написано, что задача не компилируется на сервере... Изменено: серьёзно? Твою...Из-за того, что я изменила имя множество result. Вот это боль. Кака ж тупая. Мне не нравилось, название множество кошек result и я его изменила на по-лучше...Мда...8 попыток(((
Александр
Уровень 25, Санкт-Петербург
30 марта, 11:26
Задачу решил с помощью removeAll, но остался один вопрос...Почему при выводе на экран содержимого всего множества, выводиться 10 элементов, когда мы вначале добавили 7?
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
Dim
Уровень 16, Житомир, Украина
2 апреля, 08:11
вначале вызываем принт и печатаем 7 объектов.
printPets(pets);
удаляем котов
removeCats(pets, cats);
и печатаем 3х собак
printPets(pets);
w0e666
Уровень 11, Киев, Украина
21 февраля, 06:03
.... когда читаешь свое решение и решение других иногда задумываешься то ли ты гений, то ли тупой
Set<Object> animals = new HashSet<Object>();
        cats.forEach(cat -> animals.add(cat));
        dogs.forEach(dog -> animals.add(dog));
        return animals;
Дмитрий
Уровень 29, Москва
22 февраля, 09:43
animals.addAll(cat);
animals.addAll(dog);
Тимур Акматов
Уровень 18, Бишкек, Кыргызстан
31 марта, 12:16
наверное гений))) мы еще стрелочки эти не проходили
Samurai
Уровень 10, Казахстан
17 февраля, 18:40
В методе JOIN добавление объектов с одной коллекций в другую можно осуществить с помощью метода addAll ( ); То есть: Создаем новую коллекцию Set<Object> pets и добавляем в него две коллекций cats и dogs pets.addAll(cats); pets.addAll(dogs);
Vano540
Уровень 22, Санкт-Петербург
14 февраля, 20:46
задача не сложная, решилась быстро, просто в нескольких моментах добавить All)
Vladyslav
Уровень 15, Израиль
11 февраля, 16:42
Реализовал метод удаления котов через instanceof , но валидацию не прошел, хотя все работает в соответствии с условием.
Dmitry Panchenko
Уровень 25, Москва, Россия
28 января, 16:26
Самое сложное было с условием удаления, не понимал как сравнивать( Object с Cat или наоборот) и в каком порядке
Iterator<Object> iterator = pets.iterator();
        while (iterator.hasNext()){
            if(cats.contains(iterator.next()))
                iterator.remove();
ЗЫ метод toString нельзя переписывать, проверку не пройдет
Anonymous #2497433
Уровень 35
3 февраля, 20:12
ты все усложнил, объекты Саt спокойно удаляются из Object
for(Cat cat : cats){

    pets.remove(cat);
}
Евгений
Уровень 20, Москва
6 февраля, 08:10
public static void removeCats(Set<Object> pets, Set<Cat> cats) { pets.removeAll(cats); } самое простое)
Валерия Тулякова Программист 1 категории
16 января, 16:06
Задача не проходит тестирование, если использовать в join(..) Collections.addAll(..):
Collections.addAll(pets, cats, dogs);
Если написать отдельно цикл для каждого множества животных - вуаля. Но постойте, разве первый вариант некорректный? По условиям: 4. Реализовать метод join, который должен возвращать объединенное множество всех животных - всех котов и собак. 5. Метод join() класса Solution должен возвращать объединенное множество всех животных - всех котов и собак. нет ограничения на использование Collections.addAll() >.<
Flexo Bending Unit #3370318
31 января, 06:49
вы же смотрели на распечатки этих двух способов?
Anonymous #2497433
Уровень 35
3 февраля, 20:14
все работает
Set<Object> catsAndDogs = new HashSet<Object>();
        catsAndDogs.addAll(cats);
        catsAndDogs.addAll(dogs);
Валерия Тулякова Программист 1 категории
4 февраля, 19:10
Возможно было обновление валидатора. Недавно у меня обновлялся плагин в Idea. На момент написания комментария не работало. Иначе бы не писала)
Валерия Тулякова Программист 1 категории
4 февраля, 19:11
Безусловно
Даниил Александрович
Уровень 35, Тамбов , Россия
4 января, 19:09
removeAll ?!? я приметивен: for(Cat delcat: cats){ if(pets.contains(delcat)) pets.remove(delcat);
jimaltair
Уровень 41, Калининград, Россия
17 декабря 2020, 21:00
Немного сложнее предыдущей задачи, но всё равно ничего серьёзного. Единственное, пришлось погуглить метод объединения коллекций и удаление из коллекции объектов одного класса. Либо я более-менее усвоил этот уровень, либо дальше будет жесть...