Коллекция Map из котов

  • 2
  • Недоступна
Мы тут решили собрать коллекцию котов, и составить для неё правильный КОТолог. В этой программке кто-то уже потрудился написать класс Cat с полем имя (name). Наша задача — создать коллекцию Map, и добавить в неё 10 котов. Для начала хватит. В качестве ключа, как вы, наверное, уже догадались, следует использовать имя кота.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (355)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр Горохов работаю в заводе
8 сентября, 08:11
Как-то решил, подглядев немного, но что понял - сказать не могу(
Андрей Мещеряков
Уровень 8, Волгоград, Россия
27 августа, 06:58
Да условие конечно жесть, в комментариях нашёл подсказки как решить
Polina
Уровень 9, Москва
28 июня, 10:46
Задача не сложная, но это условие...С 3-й попытки(( Меня немножечко бомбит. Почему нельзя было сразу написать, что задача должна работать не только для 10-ти элементов.
Максим Белоусов
Уровень 13, Москва, Россия
21 июня, 10:48
Больше всего в задаче сбивает этакая "обезличенная фабрика кошек". Объекты создаем, а с переменными их не связываем.
Ivan Tregubov
Уровень 8, Россия
19 мая, 01:59
Перед решением данной задачи рекомендую досконально разобрать уже имеющийся код, тогда становиться понятно что в качестве key мы устанавливаем значения из списка cats, value у нас объект класса который мы создаем в методе addCatsToMap, но заполняется значение в этом участке кода public String toString() { return name != null ? name.toUpperCase() : null; } А именно происходит дублирование значения String (которое мы указали в качестве key) но с повышением регистра на что указывает метод toUpperCase(). Пример вывода, если вы всё правильно сделаете: борис - БОРИС гарфи - ГАРФИ мурка - МУРКА дымка - ДЫМКА босс - БОСС серый - СЕРЫЙ визя - ВИЗЯ снежок - СНЕЖОК васька - ВАСЬКА рыжик - РЫЖИК
Дмитрий
Уровень 8, Санкт-Петербург
15 июня, 13:04
По-моему оно заполняется вот здесь: public Cat(String name) { this.name = name; } А в этом коде: public String toString() { return name != null ? name.toUpperCase() : null; } Объект просто преобразовывается в строку для вывода.
Andrey Panchenko
Уровень 20, Краснодар, Россия
20 июля, 09:37
Что странно, у меня именно такой вывод и происходит, но валидацию задача не проходит.
Александр Technical Lead в МДР
30 апреля, 11:10
Условие задачи максимально непонятно написано.
Станислав
Уровень 9, Санкт-Петербург
23 марта, 17:34
Почему-то не пропустил
for (int i = 0; i < 10; i++){
        map.put(cats[i], new Cat(cats[i]));
хотя это тоже самое что for each
Павел
Уровень 8, Санкт-Петербург
24 марта, 07:12
Заполнение Map должно соответствовать количеству строк cats. Поэтому правильно писать
for (int i = 0; i < cats.length; i++)
alex
Уровень 22
21 марта, 17:49
Решил, но не понял ничего от слова ничего...
Асет Тажибаев
Уровень 9
21 марта, 09:01
До последнего не мог понять что будет в value это решает многие вопросы по коду
Михаил Никитюк
Уровень 9, Харьков, Украина
18 января, 20:22
for (String cat : cats) {
            catMap.put(cat, new Cat(cat));
читаю комментарии и все пишут new Cat, как будто один я это пропустил что так можно создавать новый объект, мне до этого момента было известно только
Сat cat = new Cat(cats[0]);
Anonymous #2497433
Уровень 35
29 января, 18:32
это они создали кота без переменной
Kirill
Уровень 11, Санкт-Петербург, Россия
19 мая, 17:44
Это называется анонимный объектом (по сути нужно для одноразового использования), однако, запихнув такие объекты в коллекцию, на них будет, образно говоря, "групповая ссылка", что позволит использовать их сколько душе угодно.