@Amir1807

Как добавить контакт к значению HashMap?

Как добавить контакт к значению HashMap? (Строго не судить, задачка учебная).
1. Есть класс PhoneContacts в котором мы будем хранить все созданные группы.
2. В классе PhoneContacts создадим HashMap: ключом для этой коллекции будет название группы, а значением - коллекция контактов.
3. Создадим класс Contact с полями: имя и номер телефона ( при необходимости переопределим hashCode, equals, toString)
4. Создадим методы для добавления группы и контакта в группе в классе PhoneContacts
5. В цикле создадим новые группы
6. В другом цикле создадим новые контакты и добавим их в группы
7. Выведем все группы с контактами программы в коде создадим несколько контактов и добавим их в несколько групп.

Это как пример работы программы)

Программа справочник
Введите название группы контактов:
Семья
Создать еще одну группу (введите название или введите нет)?
Друзья
Создать еще одну группу (введите название или введите нет)?
нет
Создать контакт (введите наименование и его номер или введите нет)?
John Smith +7(911)111-11-11
Укажите группы контакта через пробел
Семья
Создать контакт (введите наименование или введите нет)?
нет
Группы в справочнике:
- Семья:
Имя: John Smith, Телефон: +7(911)111-11-11

В принципе вот мой код, все сделал как положена, даже создал список где будут хранится контакты, но вопрос в том что как это поместить в значении мапы?

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Программа справочник");
        PhoneContacts phoneContacts = new PhoneContacts();
        System.out.println("Введите название группы контактов:");

        while (true) {
            String input = scanner.next();
            if (input.equals("no")){
                break;
            } else {
                phoneContacts.addGroup(input);
                System.out.println("Создать еще одну группу (введите название или введите нет)?");
            }
        }
        System.out.println(phoneContacts.groupMap);


        while (true){
            System.out.println("Создать контакт (введите наименование и его номер или введите нет)?");
            String nameOfContact = scanner.nextLine();
            String numberOfContact = scanner.nextLine();
            if(nameOfContact.equals("нет")){
                break;
            }
            Contact newContact = Contact.createContact(nameOfContact, numberOfContact);
            phoneContacts.addContact(newContact);
            System.out.println("Список контактов");
            phoneContacts.showContact();

            System.out.println("Укажите группу контактов через пробел");
            String inputGroupNames = scanner.nextLine();
            String[] arrayOfInputGroupNames = inputGroupNames.split(" ");
        }

        System.out.println("Группы в справочнике: ");
        System.out.println(phoneContacts.groupMap);
    }
}


import java.util.*;

public class PhoneContacts {
    Map<String, List<Contact>> groupMap = new HashMap<>();
    List<Contact> contactList = new ArrayList<>();

    public void addGroup(String inputName) {
        if (!groupMap.containsKey(inputName)) {
            groupMap.put(inputName, new ArrayList<>());
        } else {
            System.out.println("Повторяется имя группы, введите заново");
        }
    }

    public void addContact(Contact contact) {
        contactList.add(contact);
    }

    public void showContact() {
        for (Contact contact : contactList) {
            String s = contact.getName() + " " + contact.getNumber();
            System.out.println(s);
        }
    }

    public void addContactToGroup(Contact contact, String[] strings) {

    }
}


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;

public class Contact {
    private String name;
    private String number;

    public Contact(String name, String number) {
        this.name = name;
        this.number = number;
    }

    public static Contact createContact(String name, String phoneNumber) {
        return new Contact(name, phoneNumber);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Contact contact = (Contact) o;
        return Objects.equals(name, contact.name) && Objects.equals(number, contact.number);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, number);
    }

    @Override
    public String toString() {
        return "Contact{" +
                "name='" + name + '\'' +
                ", number='" + number + '\'' +
                '}';
    }
}
  • Вопрос задан
  • 472 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы