как закончить эту Java-программу о коллекции - PullRequest
1 голос
/ 31 октября 2019

Представьте, что вы разрабатываете игру покемонов, и вам нужно реализовать механику боевой партии. Напомним, что партия игрока может вместить не более 6 покемонов. Чтобы упростить вещи, вы хотите реализовать его в виде ArrayList, содержащего 6 элементов (по 1 на каждого покемона в группе), а для еще большего упрощения, вы решаете избегать создания собственного класса Pokemon. Вместо этого вы выбираете представление каждого покемона как HashMap с двумя ключами: «Имя» и «Уровень». Значение, связанное с ключом «Имя», будет строкой, обозначающей имя покемона, а значением, связанным с ключом «Уровень», будет целое число, обозначающее уровень покемона.

ЗАДАЧА: Написать открытый статический методс именем createParty, у которого есть один параметр типа String [] с именами, содержащими имена покемонов, за которым следует параметр типа int [], называемый уровнями, содержащими уровни покемонов (где имена [i] и уровни [i] - это имя и уровеньЯ покемонов в отряде). Он должен вернуть партию в виде ArrayList>, как описано выше

Sample Input:

Pikachu Venasaur Charizard Blastoise Lapras Snorlax
88 84 84 84 80 82
Sample Output:

Pikachu 88
Venasaur 84
Charizard 84
Blastoise 84
Lapras 80
Snorlax 82

мой код, как показано ниже, но это напоминает мне с ошибкой.

     public static ArrayList<HashMap<String, Object>> createParty(String[] names,int[] levels) {

         ArrayList<HashMap<String, Object>> party = new ArrayList<HashMap<String,Object>>(6);

         for(int i=0;i<6;i++) {
             HashMap<String, Object> hm = new HashMap<String, Object>();
             hm.put(names[i], levels[i]);
             party.add(hm);

         }
         return party;

     }

ошибка, как показано ниже

Failed test #1. The 'ArrayList' your 'createParty' method returned contained a 'HashMap' that was missing the "Name" key

Input:
Pikachu Venasaur Charizard Blastoise Lapras Snorlax
88 84 84 84 80 82
Your output:
MISSING_NAME
Correct output:
Pikachu 88
Venasaur 84
Charizard 84
Blastoise 84
Lapras 80
Snorlax 82

Не могли бы вы помочь найти, какая часть неправильна, большое спасибо. :)

1 Ответ

2 голосов
/ 31 октября 2019

Вместо этого вы выбираете представление каждого покемона как HashMap с двумя ключами: «Имя» и «Уровень»

Может показаться, что он ожидает вместо

hm.put(names[i], levels[i]);

что вы возвращаете имя и уровень с фиксированными клавишами:

hm.put("Name", names[i]);
hm.put("Level", levels[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...