Занесем животных в множества. Сначала создадим классы Cat и Dog, затем — методы createCats и createDogs (возвращают множества с собаками и кошками), метод join, возвращающий конгломерат из множеств собак и кошек. На случай недобрососедства — метод removeCats, удаляющий из pets котов. И ещё — метод printPets, пусть выводит на экран всех обитателей pets.
Множество всех животных
- 10
- Недоступна
Комментарии (275)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий вы должны авторизоваться
w0e666 11 уровень, Киев
21 февраля, 06:03
.... когда читаешь свое решение и решение других иногда задумываешься то ли ты гений, то ли тупой
0
Дмитрий 11 уровень, Москва
22 февраля, 09:43
0
Samurai 10 уровень
17 февраля, 18:40
В методе JOIN добавление объектов с одной коллекций в другую можно осуществить с помощью метода addAll ( );
То есть:
Создаем новую коллекцию Set<Object> pets и добавляем в него две коллекций cats и dogs
pets.addAll(cats);
pets.addAll(dogs);
0
Vano540 9 уровень, Санкт-Петербург
14 февраля, 20:46
задача не сложная, решилась быстро, просто в нескольких моментах добавить All)
0
Vladyslav 9 уровень
11 февраля, 16:42
Реализовал метод удаления котов через instanceof , но валидацию не прошел, хотя все работает в соответствии с условием.
0
Dmitry Panchenko 15 уровень, Москва
28 января, 16:26
Самое сложное было с условием удаления, не понимал как сравнивать( Object с Cat или наоборот) и в каком порядке
ЗЫ метод toString нельзя переписывать, проверку не пройдет 0
oneDollarGourmet $1
3 февраля, 20:12
ты все усложнил, объекты Саt спокойно удаляются из Object
+3
Евгений 20 уровень, Москва
6 февраля, 08:10
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
pets.removeAll(cats);
} самое простое)
0
Валерия Тулякова Программист 1 категории
16 января, 16:06
Задача не проходит тестирование, если использовать в join(..) Collections.addAll(..):
Если написать отдельно цикл для каждого множества животных - вуаля.
Но постойте, разве первый вариант некорректный?
По условиям:
4. Реализовать метод join, который должен возвращать объединенное множество всех животных - всех котов и собак.
5. Метод join() класса Solution должен возвращать объединенное множество всех животных - всех котов и собак.
нет ограничения на использование Collections.addAll()
>.< 0
Flexo 13 уровень, New New York
31 января, 06:49
вы же смотрели на распечатки этих двух способов?
0
oneDollarGourmet $1
3 февраля, 20:14
все работает
0
Валерия Тулякова Программист 1 категории
4 февраля, 19:10
Возможно было обновление валидатора. Недавно у меня обновлялся плагин в Idea. На момент написания комментария не работало. Иначе бы не писала)
0
Валерия Тулякова Программист 1 категории
4 февраля, 19:11
Безусловно
0
Даниил Александрович 24 уровень, Тамбов
4 января, 19:09
removeAll ?!?
я приметивен:
for(Cat delcat: cats){
if(pets.contains(delcat))
pets.remove(delcat);
0
jimaltair 27 уровень, Калининград
17 декабря 2020, 21:00
Немного сложнее предыдущей задачи, но всё равно ничего серьёзного. Единственное, пришлось погуглить метод объединения коллекций и удаление из коллекции объектов одного класса. Либо я более-менее усвоил этот уровень, либо дальше будет жесть...
+1
Имя Фамилия 15 уровень, Москва
6 декабря 2020, 16:16
Тот момент, когда все пишут, что не вспомнили removeAll, а ты сразу написал removeAll, зато потом лишний час троИл над задачей потому, что использовал pets.add(cats); вместо pets.addAll(cats); и в результате получал не пойми что ))
p.s. с дублем принта пришлось подумать чего же пожелает валидатор, поставил всё таки // - прокатило )
0
Алексей 16 уровень, Казань
9 декабря 2020, 19:45
когда узнал, что можно было использовать remove.all меня посетило двоякое чувство:
с одной стороны- задача решена, с другой- всё стало ещё более непонятно -_-
0
Андрей Сердюк 19 уровень, Санкт-Петербург
30 ноября 2020, 14:22
Не переопределяйте toString() в классах Cat и Dog, валидатору это не нравится.
0