diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/Solution.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/Solution.java" index d5e428d..7fe77a6 100644 --- "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/Solution.java" +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/Solution.java" @@ -2,6 +2,15 @@ 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.blockUser(secondUser); + secondUser.blockUser(thirdUser); + thirdUser.blockUser((User) null); + System.out.println(firstUser.amIBlocked()); + System.out.println(thirdUser.amIBlocked()); + System.out.println(firstUser.isUserBlocked(secondUser)); + System.out.println(firstUser.isUserBlocked(thirdUser)); } } diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/User.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/User.java" new file mode 100644 index 0000000..3002741 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/User.java" @@ -0,0 +1,69 @@ +package com.school.faang.hashset.задача_2; + +public class User { + + private String username; + + private final UserBlackList userBlackList; + + private boolean isUserBlocked; + + public User(String username) { + this.username = username; + userBlackList = new UserBlackList(); + isUserBlocked = false; + } + + public String getUsername() { + return username; + } + + public void blockUser(String username) { + if (username == null) { + isUserBlocked = true; + return; + } + userBlackList.blockUser(username); + } + + public void blockUser(User user) { + if (user == null) { + isUserBlocked = true; + return; + } + blockUser(user.toString()); + } + + public void unblockUser(String username) { + if (username == null) { + isUserBlocked = false; + return; + } + userBlackList.unblockUser(username); + } + + public void unblockUser(User user) { + if (user == null) { + isUserBlocked = false; + return; + } + userBlackList.unblockUser(user.toString()); + } + + public boolean isUserBlocked(String username) { + return userBlackList.isUserBlocked(username); + } + + public boolean isUserBlocked(User user) { + return isUserBlocked(user.toString()); + } + + public boolean amIBlocked() { + return isUserBlocked; + } + + @Override + public String toString() { + return username; + } +} diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/UserBlackList.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/UserBlackList.java" new file mode 100644 index 0000000..dc7f469 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_2/UserBlackList.java" @@ -0,0 +1,28 @@ +package com.school.faang.hashset.задача_2; + +import java.util.Set; +import java.util.HashSet; + +public class UserBlackList { + + private final Set blackList; + + public UserBlackList() { + blackList = new HashSet<>(); + } + + public void blockUser(String username) { + blackList.add(username); + } + + public void unblockUser(String username) { + if (username == null) { + return; + } + blackList.remove(username); + } + + public boolean isUserBlocked(String username) { + return blackList.contains(username); + } +}