Set из котов

  • 10
  • Недоступна
Вам необходимо создать кошачье множество. Для этого нужен класс public static Cat. Затем реализуйте метод createCats, который должен создавать Set из котов и добавлять в него 3 котов. В методе main удалите одного кота из Set cats. И, наконец, реализуйте метод printCats, он должен вывести на экран всех котов, которые остались во множестве.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (249)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
mixk888 уровень, Красноярск
30 июля, 13:02
кстати котов можно создавать без параметров вобще, решение проходит
1 августа, 20:19
я кстати таки решил не запариваться и выполнить все пункты задания буквально, и на удивление после того как отладил код в дебагере - валидатор принял с первого раза, я прям удивился - выражение лица, а что и так модо было? )))
Мариам10 уровень
28 июля, 20:28
STEP 1: Снаружи метода main (под, над, но не внутри) создала паблик статик класс Cat. Попросили что б там был конструктор по умолчанию. Значит можно просто ничего не писать. Когда никакого конструктора нет, тогда Джава сама создает конструктор по умолчанию STEP 2: В методе createCats создала set и вставила в него три обьекта типа Cat которые на месте и создавала. Исправляем ретёрн. Ретернуть надо созданный сет. STEP 3: Удалить одного кота из set. Тут немного помучатся придется. set.remove(0) не прокатывает. Я тут нашла: https://javarush.ru/help/1857 STEP 4: В методе printCats, в цикле вывела на печать все элементы сета, не забыв что нужно не в одну строку а каждый элемент с новой
DZ13 уровень
3 июля, 21:49
Пять попыток потратил на пункт "Вывести оставшихся котов, каждый с новой строки". Сделал красиво со своим методом toString (), а надо было тупо не переопределять ничего и вывести набор буковок, которые выводятся стандартным методом. Как обычно: за несколько минут решаешь правильно задачу и полчаса пытаешься угодить валидатору, ломая и искривляя свой же код
Wan-Derer16 уровень, Москва
4 июля, 13:14
О спасибо! Хотел скормить "расширенную версию" с конструктором и своим тустринг, но теперь не буду :) Сам научился и ладно :)
NEURO MANT9 уровень, Белая Церковь
6 августа, 19:40
И я зашел сюда предупредить, что валидатор не пропускает переопределенный to String()
Pavel Dyakov14 уровень, Санкт-Петербург
29 июня, 16:06
Почему не происходит удаление через for each?? for (Cat cat : cats) { cats.remove(cat); } Почему обязательно удалять через итератор?? Запутался во всем этом)
25 июня, 10:20
Удаление одной строкой:
cats.remove(cats.iterator().next());
Aleks15 уровень, Москва
4 июля, 10:24
Супер, единственная строчка которой не хватало, Спасибо!) Есть на примете какие нибудь дельные статьи по работе с Set?
Wan-Derer16 уровень, Москва
4 июля, 13:16
Самый дельный совет - присматриваться что предлагает ИДЕ, она, сцк, умная :)
Azat Burkhanov17 уровень, Казань
29 июля, 06:42
Изи. А я думал как убрать один элемент)
Александр10 уровень, Киев
24 июня, 18:30
Как альтернативу итератору можно использовать For Each:
for (Cat cat : cats) {
            cats.remove(cat);
            break;
Grigory Filiptsov11 уровень, Воронеж
21 июня, 21:36
решил через итератор, наверное как и все) Удалил первого попавшегося кота и сразу break;
Wan-Derer16 уровень, Москва
4 июля, 13:21
а чтобы грохнуть конкретного кота, надо так:
cats.removeIf(elem -> elem.name.equals("Васька"));
Это я не сам придумал, а ИДЕ предложила вместо цикла по всем элементам с поиском совпадения поля
Andrew10 уровень, Москва
21 июня, 18:59
Подскажите, плиз... Почему длинный вариант записи не срабатывает,
Iterator<Cat> iterator = cats.iterator();
        while (iterator.hasNext())        //проверка, есть ли ещё элементы
        {
            iterator.remove();
            break;
        }
а заменив на
cats.remove(cats.iterator().next());
всё ок...
Andrew10 уровень, Москва
21 июня, 19:03
Вот что выкидывает при длинном варианте
Exception in thread "main" java.lang.IllegalStateException
	at java.base/java.util.HashMap$HashIterator.remove(HashMap.java:1596)
	at com.company.solutionSet3.main(solutionSet3.java:15)
Andrew10 уровень, Москва
21 июня, 19:08
В общем починил сам, добавив
Cat cat = iterator.next();
догадываюсь, что не вызвав next(), iterator не знает что удалять, но точно не уверен
Александр10 уровень, Минск
15 июня, 11:31
Удаляем с помощью итератора с котами и не забываем break; чтобы не удалить всех)
Алексей16 уровень, Санкт-Петербург
9 июня, 09:15
Попробую выразить условия по проще и понятнее: Первое нужно создать класс, так как написано в условии. Конструктор в классе абсолютно пустой Кот. Второе я привык создавать массивы из прошлых задач String, Integer. Но тут у нас нет никаких стандартных классов! Есть только класс Cat!! Мы его создали! И дальше работаем с ним. То есть получается создаем множество котов. То же самое и с печатью работаем с котом! Ну удаление самое простое итератор с котами, и ремув.