Десять котов

  • 5
  • Недоступна
Мне, пожалуйста, десяток котов и знания по Java. Желательно, одновременно! Не проблема, держите: в программе есть класс кот – Cat, с полем «имя» (String). Вам нужно создать словарь Map<String, Cat> и добавить туда 10 котов в виде «Имя»-«Кот». Затем получите из Map множество(Set) всех котов и выведите его на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (33)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Владимир10 уровень, Минск
26 мая, 11:20
Подскажите, а для чего такое построение: Map в key содержит имя, и класс Cat в аргументе тоже содержит имя кота. Следовательно value в map содержит объект с именем кота. Но при этом имена котов в key и value могут не совпадать.. PS. Задачу решил.
Pavel Kurashov14 уровень, Новосибирск
26 марта, 10:00
Почитал комментарии - ну вот что за бездуховность такая, называть котов в цикле номерами?
Владимир Павленко22 уровень, Москва
16 февраля, 11:51
Тренируйся на кошках! (c) Операция Y
Shamil20 уровень
3 января, 00:09
добавил так:
for (int i = 1; i <11 ; i++) {
    map.put("Кот"+i,new Cat("Кот"+i));
}
Конверт:
map.forEach((k,v) -> set.add(v));
Pavel41 уровень, Санкт-Петербург
1 ноября 2018, 15:30
Может кто-нибудь пояснить почему так проходит:
HashSet<Cat> set = new HashSet<>(map.values());
а так нет:
HashSet<Cat> set = new HashSet<>();
set = map.values();
Пришлось решить так:
for (Map.Entry<String, Cat> i : map.entrySet()){
    set.add(i.getValue());
}
Anton16 уровень, Odintsovo
18 декабря 2018, 13:50
Похоже на то, что у HashSet есть конструктор, который принимает Collection на входе, например map.values() и умеет преобразовывать его к HashSet. Но прямо приравнять HashSet = Collection нельзя. В этом случае можно сделать так Collection<Cat> set = map.values();
Shamil20 уровень
3 января, 00:14
Объекту типа HashSet хочешь присвоить ссылку на объект типа Cat по этому и нет
Азер20 уровень, Казань
13 января, 13:59
set.addAll(map.values());
NewBuy23 уровень, Санкт-Петербург
27 января, 18:42
Не типа Cat, а типа Collection<Cat>, если я не ошибаюсь
Viktor 17 уровень
19 марта, 14:56
о теперь вроде понял))
Kupyrev Alexander20 уровень, Казань
4 июля 2018, 22:00
Ошибка - что не выводит все строки - но выводит все, да и этот метод( printCatSet) чинить то не надо
public static Map<String, Cat> createMap() {
     Map<String, Cat> temp = new HashMap<String, Cat>();
     for (int i = 0; i < 10; i++) {
         temp.put("cat" + i, new Cat( new Random().nextInt(23) + "cat32" + i));
     }
     return temp;
 }

public static Set<Cat> convertMapToSet(Map<String, Cat> map) {
    return map.values().stream().collect(Collectors.toSet());
 }
NazFarr29 уровень
2 июля 2018, 14:08
а где и как можно проверить качество своего написанного кода?
Khanif13 уровень, Алматы
4 августа 2018, 15:56
Там есть Анализ кода, но он доступен только с Premium Pro подпиской
NazFarr29 уровень
4 августа 2018, 18:59
понятно )) спасибо)) обйдусь пока)))
Polina10 уровень
1 февраля 2018, 20:08
Получила удовольствие от задания, потому что всё понятно =)
Игорь Петров41 уровень
12 января 2018, 10:48
В этой строчке
String []s = {"Cat","Cat","Cat","Cat","Cat","Cat","Cat","Cat","Cat","Cat"};
ошибка пишет несовместимый тип передаваемого значения ожидается этот класс
import java.lang.String;
а получается передается этот
import com.sun.org.apache.xpath.internal.operations.String;
Вопрос: А почему автоматически IDEA прописывает этот пакет
Kostyadef10 уровень
28 ноября 2017, 02:36
/* Комментарий удален */
Voffka23 уровень, Киев
19 декабря 2017, 16:09
createMap() у тебя ну совсем не красивый ...