Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите выявить ошибку.

Икрамжан Ормошович Ученик (187), открыт 2 недели назад
import java.util.ArrayList;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map ;

class PhoneBook {
private static Map> phoneBook;
public PhoneBook() {
PhoneBook.phoneBook = new HashMap<>();
}

public void add(String name, Integer phoneNum) {

List numbers = phoneBook.getOrDefault(name, new ArrayList<>());

numbers.add(phoneNum);

phoneBook.put(name, numbers);

}
public List find(String name) {

return phoneBook.getOrDefault(name, new ArrayList<>());
}
public static Map> getPhoneBook() {

return new HashMap<>(phoneBook);
}
public class Printer {
public static void main(String[] args) {
String name1;
String name2;
int phone1;
int phone2;

if (args.length == 0) {
name1 = "Carol";
name2 = "Eve";
phone1 = 555555;
phone2 = 666666;
} else {
name1 = args[0];
name2 = args[1];
phone1 = Integer.parseInt(args[2]);
phone2 = Integer.parseInt(args[3]);
}

PhoneBook myPhoneBook = new PhoneBook();
myPhoneBook.add(name1, phone1);
myPhoneBook.add(name1, phone2);
myPhoneBook.add(name2, phone2);

System.out.println(myPhoneBook.find(name1));
System.out.println(PhoneBook.getPhoneBook());
System.out.println(myPhoneBook.find("Me"));
}
} // Проверяем решение

Ожидаемый ответ:

[555555, 666666]
{Eve=[666666], Carol=[555555, 666666]}
[]

Ваш ответ:

[555555, 666666]
{Carol=[555555, 666666], Eve=[666666]}
[]
1 ответ
Оракул Оракул (59536) 2 недели назад
У вас всего лишь порядок абонентов не тот. Но задания-то нет. Хэш-мапа никакого порядка не хранит в себе, печататься может в любом порядке. Если есть требование в задании выводить не по алфавиту, значит надо сортирнуть в выводе имена в обратном алфавитном порядке, судя по ожидаемому ответу.
Похожие вопросы