HashMap телефонный справочник?

Не могу разобраться в задании: задача про телефонный справочник с поддержкой групп контактов. Один контакт может входить в несколько групп. Например, если вы работаете со своим другом, то он будет в группах "Друзья" и "Работа". У пользователя должна быть возможность создания групп и контактов, добавления одного контакта в несколько групп.

import java.util.Scanner;

public class Main {


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

        while (true) {
            String input = scanner.nextLine();
            if ("нет".equals(input)) break;
            PhoneContacts.addGroup(input);

        }
        PhoneContacts.toStringList();
    }
}

import java.util.Objects;

public class Contact {
    protected static String name;
    protected static String number;

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

    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 + '\'' +
                '}';
    }

    public static void addContact(String input) {
        System.out.println("Создать контакт (введите наименование и его номер или введите нет)");
        String[] parts = input.split(" ", 2);
        Contact user = new Contact(parts[0], parts[1]);
    }
}

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PhoneContacts {

    static List<String> groups = new ArrayList<>();
    static Map<String, Contact> note = new HashMap<>();

    public static void addGroup(String input) {
        System.out.println("Создать контакт (введите наименование и его номер или введите нет)?");
        groups.add(input);
    }

    public static void toStringList() {
        System.out.println(groups.toString());
    }
}


В условии сказано что пользователь должен ввести имя и телефонный номер контакта через пробел: "John Smith +7(911)111-11-11"
Как эту запись перевести в объект класса Contact?
  • Вопрос задан
  • 4421 просмотр
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
0. У вас static в каждом поле. Так не должно быть.
Пусть остаётся только в void main.
1. В вашем задании говорится: "телефонный справочник с поддержкой групп контактов". Вот и добавьте в модель contact ещё и список групп.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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