Не могу разобраться в задании: задача про телефонный справочник с поддержкой групп контактов. Один контакт может входить в несколько групп. Например, если вы работаете со своим другом, то он будет в группах «Друзья» и «Работа». У пользователя должна быть возможность создания групп и контактов, добавления одного контакта в несколько групп.
В условии сказано что пользователь должен ввести имя и телефонный номер контакта через пробел: «John Smith +7(911)111-11-11»
Как эту запись перевести в объект класса Contact?
- Вопрос задан более года назад
- 3542 просмотра
3 комментария
Простой 3 комментария
Источник: qna.habr.com
(Решено) Реализуйте структуру телефонной книги с помощью HashMap, учитывая, что 1 человек может иметь несколько телефонов.Добавить функции 1) Добавление номер…
MVC — Создание телефонной книжки
Реализуйте структуру телефонной книги с помощью HashMap, учитывая, что 1 человек может иметь несколько телефонов.
Добавить функции 1) Добавление номера
2) Вывод всего
Пример:
Я ввожу: 1
К: Введите фамилию
Я: Иванов
К: Введите номер
Я: 1242353
К: Введите 1) Добавление номера
Не закрывайте страницу. Нейросеть пишет ответ. Он появится тут.
Этот ответ написан нейросетью.
Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.
Ответ нейросети:
Чтобы реализовать структуру телефонной книги с помощью HashMap, мы будем использовать класс HashMap из библиотеки java.util.
Создадим класс PhoneBook и определим в нем HashMap.
Здесь ключом в HashMap будет являться фамилия контакта, а значением — список телефонов контакта.
Теперь добавим две функции в класс PhoneBook — addPhoneNumber() и printAllNumbers().
Функция addPhoneNumber() принимает два аргумента — фамилию и номер телефона.
Она проверяет, существует ли фамилия уже в HashMap, если да — добавляет новый номер в список этого контакта, если нет — создает новую запись в HashMap с новым списком телефонов.
Функция printAllNumbers() просто перебирает все записи в HashMap и выводит на экран все фамилии и список телефонов, соответствующих каждой фамилии.
Ниже приводится полный код класса PhoneBook:
«`
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
public static void main(String[] args) PhoneBook phoneBook = new PhoneBook();
Scanner scanner = new Scanner(System.in);
while (true) System.out.println(«Enter 1 to add a phone number or 2 to print all numbers:»);
Язык программирования Java — урок №33 (Класс HashMap и интерфейс Map)
int choice = scanner.nextInt();
if (choice == 1) System.out.println(«Enter name:»);
String name = scanner.next();
System.out.println(«Enter phone number:»);
String number = scanner.next();
phoneBook.addPhoneNumber(name, number);
> else if (choice == 2) phoneBook.printAllNumbers();
>
>
>
>
«`
В функции main мы создаем объект класса PhoneBook и в бесконечном цикле запрашиваем у пользователя выбор между добавлением нового номера и выводом всех номеров.
В функции addPhoneNumber() мы сначала проверяем, существует ли фамилия уже в HashMap, используя containsKey(). Если существует, мы получаем список телефонов этого контакта из HashMap, используя метод get(). Если не существует, мы создаем новый список и добавляем его в HashMap для данной фамилии.
Мы затем добавляем новый телефон в список методом add().
В функции printAllNumbers() мы перебираем все записи в HashMap с помощью keySet() и получаем список телефонов для каждой фамилии методом get(). Затем мы просто выводим все фамилии и соответствующие им списки телефонов на экран.
Чтобы оставить комментарий, необходимо авторизоваться.
Задай любой вопрос нейросети!
она справится с любой поставленной задачей быстрее чем поиск в Яндекс.
Для того, чтобы задать вопрос нейросети, необходимо войти на сайт.
Последние вопросы
Искусственный интеллект ChatGPT на русском: полный обзор, возможности и использование
(Решено) Активные родители класса объединились и создали Совет инициативных из12-ти родителей, которые создают и делают свои проекты, привлекая в нихдетей и …
(Решено) Определите историко-культурные памятники, вошедшие в проект «Сакральный Казахстан» и опишите их особенности….
(Решено) Активные родители класса объединились и создали Совет инициативных из 12-ти родителей, которые создают и делают свои проекты, привлекая в них детей и…
(Решено) Каким образом следует разделять элементы и компоненты индивидуальных образовательных траекторий?…
(Решено) Педагог образовательной организации не проявляет интереса к воспитательной работе с обучающимися, обосновывая свой ответ тем, что он не является класс…
(Решено) В интернете много статей о фандабе японских Аниме, но с китайскими Дунхуа сложнее. Сделай Топ озвучек китайских Дунхуа на русском языке- кто и что …
(Решено) Были ли знакомы Наталья Ветлицкая и Юлия Матвеева. Они совместно пели или нет. …
(Решено) Привлечение молодых специалистов на муниципальную службу…
(c) ChatGPT по русски 2023. Все права защищены. При обнаружении неправомерного контента пишите на [email protected]
Хотите задать любой вопрос нейросети?
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет»
Форма репорта неправомерного контента.
Обратная связь с администрацией проекта
Уведомление об использовании cookie файлов
При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie и других похожих технологий в соответствии с настоящим Уведомлением.
Если Вы не согласны, чтобы мы использовали данный тип файлов, Вы должны соответствующим образом установить настройки Вашего браузера или не использовать наш сайт.
Обращаем Ваше внимание на то, что при блокировании или удалении cookie файлов, мы не можем гарантировать корректную работу нашего сайта в Вашем браузере.
Cookie файлы, которые сохраняются через веб-сайт, не содержат сведений, на основании которых можно Вас идентифицировать.
Что такое файл cookie и другие похожие технологии
Файл cookie представляет собой небольшой текстовый файл, сохраняемый на вашем компьютере, смартфоне или другом устройстве, которое Вы используете для посещения интернет-сайтов.
Некоторые посещаемые Вами страницы могут также собирать информацию, используя пиксельные тэги и веб-маяки, представляющие собой электронные изображения, называемые одно-пиксельными (1×1) или пустыми GIF-изображениями.
Файлы cookie могут размещаться на вашем устройстве нами («собственные» файлы cookie) или другими операторами (файлы cookie «третьих лиц»).
Помогите пожалуйста c последним тестом в задании PhoneBook! TreeSet
Если вводим новое имя, программа просит ввести номер телефона и запоминает его. Если новый номер телефона — просит ввести имя и также запоминает. Если вводим существующее имя или номер телефона, программа выводит телефон(ы) или имя абонента соответственно. При вводе команды LIST программа печатает в консоль список всех абонентов в алфавитном порядке с номерами. 2. Определяйте имя и телефон с помощью регулярных выражений.
- Подумайте, что выбрать в качестве ключа и значения для Map, и выберите лучший, по вашему мнению, вариант. Опишите, какие минусы и плюсы видите в своём выборе.
- Для работы с данными телефонной книги в проекте находится класс PhoneBook, который должен отвечать за хранение и работу с абонентами. Реализуйте все методы и проверьте класс с помощью существующих тестов. Вы можете добавлять дополнительные методы в класс.
Команды вводятся пользователем в консоль одной строкой. Помогите пожалуйста c последним тестом в задании!
У меня проходят все тесты кроме одного:
Мне посоветовали, что нужно пройтись в цикле по мапе где хранятся телефон и имя Map он же Map и переложить в новую мапу Map, в виде ключа положить имя, в виде значения телефон в treeset и если встретится такое же имя, докладывать телефон в Treeset, а после цикла for уже объединять ключ и значение (имя контакта с номерами телефонов) в Set.
Но я не понимаю, как это реализовать, буду очень признателен, если кто-нибудь сможет помочь подправить код!
import java.util.Map; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; public class PhoneBook < MapmapPhoneBook = new TreeMap<>(); public void addContact(String phone, String name) < if (phone.matches(«[\d]») name.matches(«[А-Яа-я]+»)) < if (mapPhoneBook.containsKey(phone)) < mapPhoneBook.replace(phone, mapPhoneBook.get(phone), name); >else < mapPhoneBook.put(phone, name); >> > public String getContactByPhone(String phone) < if (mapPhoneBook.containsKey(phone)) < return mapPhoneBook.get(phone) + » — » + phone; >else < return «»; >> public Set getContactByName(String name) < SetsetPhoneBook = new TreeSet<>(); String namePlusTel = «»; if (mapPhoneBook.containsValue(name)) < namePlusTel = namePlusTel.concat(name) + » — «; for (String tel : mapPhoneBook.keySet()) < if (mapPhoneBook.get(tel).equals(name)) < namePlusTel = namePlusTel.concat(tel) + «, «; >> setPhoneBook.add(namePlusTel.substring(0, namePlusTel.length() — 2)); return setPhoneBook; > else < return new TreeSet<>(); > > public Set getAllContacts() < SetsetPhoneBook = new TreeSet<>(); for (String key : mapPhoneBook.keySet()) < setPhoneBook.add(mapPhoneBook.get(key) + » — » + key); >return setPhoneBook; > >
Источник: ru.stackoverflow.com