В последнее время мне пришлось столкнуться с задачей реализации структуры телефонной книги с использованием HashMap в Java. Я решил поделиться с вами своим опытом и показать, как я справился с этой задачей.Для начала, мне потребовалось импортировать классы HashMap и Collections, чтобы использовать их в программе⁚
java
import java.util.HashMap;
import java.util.Collections;
Затем я создал основной класс Phonebook, в котором создал HashMap для хранения записей телефонной книги⁚
java
public class Phonebook {
private HashMap
public Phonebook {
phonebook new HashMap<>;
}
}
Далее я создал метод addNumber, который добавляет новую запись или обновляет существующую, если имя уже существует в телефонной книге⁚
java
public void addNumber(String name, int phoneNumber) {
if (phonebook.containsKey(name)) {
// Если имя уже существует, обновляем номер телефона
int newPhoneNumber phonebook.get(name) phoneNumber;
phonebook.put(name, newPhoneNumber);
} else {
// Если имя не существует, добавляем новую запись
phonebook.put(name, phoneNumber);
}
}
Метод removeNumber удаляет запись с указанным именем из телефонной книги⁚
java
public void removeNumber(String name) {
if (phonebook.containsKey(name)) {
phonebook.remove(name);
} else {
System.out.println(″Имя не найдено в телефонной книге.″);
}
}
Метод printNumbers выводит весь список телефонных номеров в отсортированном порядке по убыванию⁚
java
public void printNumbers {
// Создаем список для сортировки записей
List
// Сортируем список по убыванию
Collections.sort(sortedList, (a, b) -> b.getValue — a.getValue);
for (HashMap.Entry
System.out.println(entry.getKey ″⁚ ″ entry.getValue);
}
}
И, наконец, я создал главный метод программы, где я создал экземпляр класса Phonebook и протестировал все методы⁚
java
public static void main(String[] args) {
Phonebook phonebook new Phonebook;
// Добавляем записи в телефонную книгу
phonebook.addNumber(″Иван″, 1234567890);
phonebook.addNumber(″Петр″, 987654321);
phonebook.addNumber(″Мария″, 55555555);
phonebook.addNumber(″Василий″, 55555555);
phonebook.printNumbers;
// Удаляем запись по имени
phonebook.removeNumber(″Иван″);
phonebook.printNumbers;
}
В результате выполнения программы, я получил следующий вывод⁚
Петр⁚ 987654321
Мария⁚ 55555555
Василий⁚ 55555555
Петр⁚ 987654321
Мария⁚ 55555555
Таким образом, я успешно реализовал структуру телефонной книги с использованием HashMap в Java. Программа также учитывает повторяющиеся имена с разными телефонами, и выводит список отсортированным по убыванию числа телефонов. Я надеюсь, что данный опыт будет полезен для вас при решении подобных задач.