Как добавить контакт к значению 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 + '\'' +
'}';
}
}