Вопрос в этой части кода. Мы передаем в keys мэпа получаемый массив. А в value просто ссылку на новосозданный объект ? Почему можно обойтись без переменной ? public static Map<String, Cat> addCatsToMap(String[] cats) { //напишите тут ваш код Map<String, Cat> m = new HashMap<>(); for(int i = 0; i < cats.length; i++){ m.put(cats[i], new Cat(cats[i])); } return m; }