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

Класс PhoheContacts (прописал три метода, не могу написать 4 метод для сортировки контакты в группы)
public class PhoneContacts {
private HashMap<String, List<Contact>> phoneContacts;
public PhoneContacts() {
this.phoneContacts = new HashMap<>();
}
public void groupsContacts(String x) {
phoneContacts.put(x, new ArrayList<>());
}
public void contactsAdd(Contact contact, String[] groups) {
for (String s : groups) {
if (phoneContacts.containsKey(s)) {
phoneContacts.get(s).add(contact);
}
}
System.out.println(phoneContacts);
}
public void contactsAndgroup() {
System.out.println("Группы в справочнике: ");
for (HashMap.Entry<String, List<Contact>> entry : phoneContacts.entrySet()) {
System.out.println("- " + entry.getKey() + ": ");
for (Contact contact : entry.getValue()) {
System.out.println("Имя: " + contact.getName() + ", Телефон: " + contact.getPhoneNumber());
}
}
}
public void sortContactGroup(String [] groups, Contact contact) {
if (contact.getName().equals(contact)) {
}
}
}
Класс Contact
public class Contact {
private String name;
private String phoneNumber;
public Contact(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Override
public String toString() {
return "Контакт " +
"имя " + name + '\'' +
"номер телофона " + phoneNumber +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Contact contact = (Contact) o;
if (!name.equals(contact.name)) return false;
return phoneNumber.equals(contact.phoneNumber);
}
@Override
public int hashCode() {
int result = name.hashCode();
result = 31 * result + phoneNumber.hashCode();
return result;
}
}
2 основных вопроса
- Как реализовать метод сортировки в PnoneContacts?
- Как реализовать main с помощью сканера и бесконечного цикла? Заранее благодарю!