package com.javarush.task.task08.task0803;
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws Exception {
String[] cats = new String[]{"васька", "мурка", "дымка", "рыжик", "серый", "снежок", "босс", "борис", "визя", "гарфи"};
HashMap<String, Cat> map = addCatsToMap(cats);
}
public static HashMap<String, Cat> addCatsToMap(String[] cats) {
for (int i = 0; i < cats.length; i++) {
map.put(cats[i], new Cat(cats[i]));
}
for(Map.Entry<String, Cat> pair : map.entrySet())
{
System.out.println(pair.getKey() + " - " + pair.getValue());
}
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;
}
}
}
Юрий
19 уровень
методы не видят мапу. почему?
Архивный
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Юрий
13 декабря 2018, 19:54
в методе addCatsToMap пишет что не знает что такое "map"
0
RiccioMaster
13 декабря 2018, 19:57решение
Так надо создать Мар
+3
--------Master
13 декабря 2018, 20:11
Вроде еще на 2 уровне видимость переменных проходили...
+1
Артем
13 декабря 2018, 20:39
Просто прикрепляй задачу а не копируй код.
Разобрался. Ты обращаешься к мап которая объявлена в методе main и естественно метод addCatsToMap про неё ни сном ни духом.
0
Юрий
14 декабря 2018, 10:58
Да глюк у них какой-то, вместо моего решения крепит вообще не пойми что.
А как сделать что бы addCatsToMap знал что такое мар?
0
Юрий
14 декабря 2018, 10:59
А почему не
HashMap<String, Cat> map = addCatsToMap(cats);
А в методе передать значения?
0
Артем
14 декабря 2018, 13:03
HashMap<String, Cat> map = addCatsToMap(cats) Тут ты инициализируешь map. Чем? Результатом который возвращает addCatsToMap(cats). Но он ничего не возвращает. Он обращается к той же map которую ты инициализируешь.
HashMap<String, Cat> map = addCatsToMap(cats); - Эта конструкция правильная (Ну правильнее будет так Map<String, Cat> map = addCatsToMap(cats) но не суть. В данной задаче это не важно. ) Просто в методе надо создать локальную HashMap<String, Cat> map = new HashMap(); Которую метод будет возвращать и присваивать карте в методе main
+1
Артем
14 декабря 2018, 13:04
Да, так и надо. Из метода addCatsToMap(cats); должна возвращаться HashMap.
Перечитай лекцию про видимость переменных.
0
Юрий
15 декабря 2018, 14:09
спасибо!)
0