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

  • 10
  • Недоступна
Занесем животных в множества. Сначала создадим классы Cat и Dog, затем — методы createCats и createDogs (возвращают множества с собаками и кошками), метод join, возвращающий конгломерат из множеств собак и кошек. На случай недобрососедства — метод removeCats, удаляющий из pets котов. И ещё — метод printPets, пусть выводит на экран всех обитателей pets.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (275)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
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;
Дмитрий 11 уровень, Москва
22 февраля, 09:43
animals.addAll(cat);
animals.addAll(dog);
Samurai 10 уровень
17 февраля, 18:40
В методе JOIN добавление объектов с одной коллекций в другую можно осуществить с помощью метода addAll ( ); То есть: Создаем новую коллекцию Set<Object> pets и добавляем в него две коллекций cats и dogs pets.addAll(cats); pets.addAll(dogs);
Vano540 9 уровень, Санкт-Петербург
14 февраля, 20:46
задача не сложная, решилась быстро, просто в нескольких моментах добавить All)
Vladyslav 9 уровень
11 февраля, 16:42
Реализовал метод удаления котов через instanceof , но валидацию не прошел, хотя все работает в соответствии с условием.
Dmitry Panchenko 15 уровень, Москва
28 января, 16:26
Самое сложное было с условием удаления, не понимал как сравнивать( Object с Cat или наоборот) и в каком порядке
Iterator<Object> iterator = pets.iterator();
        while (iterator.hasNext()){
            if(cats.contains(iterator.next()))
                iterator.remove();
ЗЫ метод toString нельзя переписывать, проверку не пройдет
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 13 уровень, New New York
31 января, 06:49
вы же смотрели на распечатки этих двух способов?
3 февраля, 20:14
все работает
Set<Object> catsAndDogs = new HashSet<Object>();
        catsAndDogs.addAll(cats);
        catsAndDogs.addAll(dogs);
Валерия Тулякова Программист 1 категории
4 февраля, 19:10
Возможно было обновление валидатора. Недавно у меня обновлялся плагин в Idea. На момент написания комментария не работало. Иначе бы не писала)
Валерия Тулякова Программист 1 категории
4 февраля, 19:11
Безусловно
Даниил Александрович 24 уровень, Тамбов
4 января, 19:09
removeAll ?!? я приметивен: for(Cat delcat: cats){ if(pets.contains(delcat)) pets.remove(delcat);
jimaltair 27 уровень, Калининград
17 декабря 2020, 21:00
Немного сложнее предыдущей задачи, но всё равно ничего серьёзного. Единственное, пришлось погуглить метод объединения коллекций и удаление из коллекции объектов одного класса. Либо я более-менее усвоил этот уровень, либо дальше будет жесть...
Имя Фамилия 15 уровень, Москва
6 декабря 2020, 16:16
Тот момент, когда все пишут, что не вспомнили removeAll, а ты сразу написал removeAll, зато потом лишний час троИл над задачей потому, что использовал pets.add(cats); вместо pets.addAll(cats); и в результате получал не пойми что )) p.s. с дублем принта пришлось подумать чего же пожелает валидатор, поставил всё таки // - прокатило )
Алексей 16 уровень, Казань
9 декабря 2020, 19:45
когда узнал, что можно было использовать remove.all меня посетило двоякое чувство: с одной стороны- задача решена, с другой- всё стало ещё более непонятно -_-
Андрей Сердюк 19 уровень, Санкт-Петербург
30 ноября 2020, 14:22
Не переопределяйте toString() в классах Cat и Dog, валидатору это не нравится.