diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/ContactList.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/ContactList.java" new file mode 100644 index 0000000..e773658 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/ContactList.java" @@ -0,0 +1,35 @@ +package com.school.faang.hashset.задача_3; + +import java.util.HashSet; +import java.util.Set; + +public class ContactList { + + private final Set contacts; + + public ContactList() { + contacts = new HashSet<>(); + } + + public ContactList(Set contacts) { + this.contacts = new HashSet<>(contacts); + } + + public void addContact(String contact) { + contacts.add(contact); + } + + public void removeContact(String contact) { + contacts.remove(contact); + } + + public boolean hasContact(String contact) { + return contacts.contains(contact); + } + + public static Set findMutualContacts(ContactList contactList1, ContactList contactList2) { + Set result = new HashSet<>(contactList1.contacts); + result.retainAll(contactList2.contacts); + return result; + } +} diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/Solution.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/Solution.java" index 3b56bed..5ef12c2 100644 --- "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/Solution.java" +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/Solution.java" @@ -1,7 +1,19 @@ package com.school.faang.hashset.задача_3; +import java.util.Collections; +import java.util.Set; + public class Solution { public static void main(String[] args) { - + User firstUser = new User("first"); + User secondUser = new User("second"); + User thirdUser = new User("third"); + firstUser.addContact(secondUser); + thirdUser.addContact(secondUser); + thirdUser.addContact(firstUser); + firstUser.addContact(thirdUser); + Set mutualContactsForFirstAndThird = User.findMutualContacts(firstUser, thirdUser); + System.out.println(mutualContactsForFirstAndThird.size()); + mutualContactsForFirstAndThird.forEach(System.out::println); } } diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/User.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/User.java" new file mode 100644 index 0000000..c8f54d9 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_3/User.java" @@ -0,0 +1,53 @@ +package com.school.faang.hashset.задача_3; + +import java.util.Set; + +public class User { + + private final String username; + + private final ContactList contactList; + + public User(String username) { + this.username = username; + contactList = new ContactList(); + } + + public User(String username, Set contacts) { + this.contactList = new ContactList(contacts); + this.username = username; + } + + public void addContact(String username) { + contactList.addContact(username); + } + + public void addContact(User user) { + addContact(user.toString()); + } + + public void removeContact(String username) { + contactList.removeContact(username); + } + + public void removeContact(User user) { + removeContact(user.toString()); + } + + public boolean hasContact(String username) { + return contactList.hasContact(username); + } + + public boolean hasContact(User user) { + return hasContact(user.toString()); + } + + public static Set findMutualContacts(User user1, User user2) { + return ContactList.findMutualContacts(user1.contactList, user2.contactList); + } + + @Override + public String toString() { + return username; + } +}