public class Solution {
public static void main(String[] args) throws Exception {
String[] cats = new String[]{"васька", "мурка", "дымка", "рыжик", "серый", "снежок", "босс", "борис", "визя", "гарфи"};
Map<String, Cat> map = addCatsToMap(cats);
for (Map.Entry<String, Cat> pair : map.entrySet()) {
System.out.println(pair.getKey() + " - " + pair.getValue());
}
}
public static Map<String, Cat> addCatsToMap(String[] cats) {
Map<String, Cat> map = new HashMap<>();
for (String cat : cats) {
map.put(cat, new Cat(cat));
}
return map;
//напишите тут ваш код
}
public static class Cat {
String name;
public Cat(String name) {
this.name = name;
}
@Override
public String toString() {
return name != null ? name.toUpperCase() : null;
}
}
}
ivan yak
14 уровень
Почему у каждого нового об*єкта кот вызываеться метод toString если я его не вызывал??
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Asad Vice Web Java Developer в EPAM
22 января 2020, 05:32решение
метод, который вызывается при попытке вывода объекта класса на экран, это метод
toString по умолчанию, тут он переопределён. Поэтому когда на экран выводятся коты, подтягивается toString для кота, т.к. pair.getValue()) это кот.
for (Map.Entry<String, Cat> pair : map.entrySet()) {
System.out.println(pair.getKey() + " - " + pair.getValue());
}
+2