[Решено] Реализуйте структуру телефонной книги с помощью HashMap.

Программа также должна учитывать, что...

Реализуйте структуру телефонной книги с помощью HashMap.

Программа также должна учитывать, что в во входной структуре будут повторяющиеся имена с разными телефонами, их необходимо считать, как одного человека с разными телефонами. Вывод должен быть отсортирован по убыванию числа телефонов.

Язык программирования java.

(1) Смотреть ответ
Данный ответ сгенерирован автоматически нейросетью, если Вы не нашли ответ на свой вопрос, попробуйте спросить нейросеть самостоятельно, для получения необходимого результата.
Это бесплатно.
Спросить нейросеть бесплатно

Ответ нейросети NoxAI

Привет!​ В этой статье я расскажу о том, как реализовать структуру телефонной книги с помощью HashMap на языке программирования Java; Также я покажу, как учесть повторяющиеся имена с разными телефонами и отсортировать вывод по убыванию числа телефонов.​Прежде всего, нам потребуется создать класс, который будет представлять нашу телефонную книгу.​ Давайте назовем его ″PhoneBook″.​ Внутри этого класса мы создадим экземпляр HashMap, где ключом будет имя контакта, а значением ‒ список телефонных номеров.​java
import java.​util.​*;

public class PhoneBook {
private HashMap> contacts;

public PhoneBook {
this.contacts new HashMap<>;
}

// метод для добавления контакта
public void addContact(String name, String phone) {
if (contacts.containsKey(name)) {
List phones contacts.​get(name);
phones.​add(phone);
} else {
List phones new ArrayList<>;
phones.​add(phone);
contacts.​put(name, phones);
}
}

// метод для вывода телефонной книги в отсортированном виде
public void printContacts {
// Создаем список пар (имя, список телефонов) из нашей hashMap
List>> listOfContacts new ArrayList<>(contacts.entrySet);

// Сортируем список по убыванию размера списка телефонов
Collections.​sort(listOfContacts, (a, b) -> b.​getValue.size ⎯ a.​getValue.size);

for (Map.​Entry> entry ⁚ listOfContacts) {
String name entry.​getKey;
List phones entry.​getValue;

System.​out.​println(name ″⁚ ″ phones);
}
}


public static void main(String[] args) {
PhoneBook phoneBook new PhoneBook;

// Добавляем контакты
phoneBook.​addContact(″Иванов″, ″12345″);
phoneBook.addContact(″Петров″, ″54321″);
phoneBook.addContact(″Иванов″, ″67890″);
phoneBook.​addContact(″Сидоров″, ″13579″);

phoneBook.​printContacts;
}
}

В методе `addContact` мы проверяем, существует ли уже контакт с таким именем в нашей телефонной книге.​ Если да, то мы просто добавляем новый телефонный номер в список телефонов этого контакта.​ Если контакта с таким именем еще нет, то мы создаем новый список телефонов, добавляем в него новый номер и добавляем этот список в HashMap с ключом в виде имени контакта.​
Метод `printContacts` сначала создает список пар (имя контакта, список телефонов) из нашей HashMap, затем сортирует этот список по убыванию размера списка телефонов с помощью лямбда-выражения.​ И, наконец, выводит отсортированный список на экран.​
В методе `main` я продемонстрировал использование класса `PhoneBook`.​ Я добавил несколько контактов с разными именами и телефонами, а затем вызвал метод `printContacts`, чтобы вывести телефонную книгу.​
Теперь, когда наша программа готова, вы можете самостоятельно использовать ее, чтобы реализовать свою собственную телефонную книгу с возможностью учета повторяющихся имен и сортировки контактов по количеству телефонов.​ Удачи!​

Читайте также  — объясните связь любого из упомянутых автором видов социальной мобильности с социальными «лифтами». (Объяснение с опорой на текст может быть дано в одном или нескольких распространённых предложениях.)
Оцените статью
Nox AI