Advertisement
StefanShivarov

03. Inbox Manager

Dec 7th, 2019
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.60 KB | None | 0 0
  1. import java.util.*;
  2. public class zad3_FinalExam_7Dec {
  3.  
  4.  
  5.     public static void main(String[] args) {
  6.  
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         String input = scanner.nextLine();
  10.  
  11.         Map<String, List<String>> messagesMap = new LinkedHashMap<>();
  12.         Map<String, Integer> messagesCountMap = new LinkedHashMap<>();
  13.  
  14.         while(!input.equals("Statistics")){
  15.  
  16.             String[] inputArray = input.split("->");
  17.  
  18.             switch (inputArray[0]){
  19.  
  20.                 case"Add":
  21.  
  22.                     String addUsername = inputArray[1];
  23.  
  24.                     if(messagesMap.containsKey(addUsername)){
  25.  
  26.                         System.out.println(addUsername+" is already registered");
  27.  
  28.                     }else{
  29.  
  30.                         List<String> messagesList = new ArrayList<>();
  31.                         messagesMap.put(addUsername, messagesList);
  32.                         messagesCountMap.put(addUsername, 0);
  33.                     }
  34.  
  35.                     break;
  36.  
  37.                 case"Send":
  38.  
  39.                     String senderUsername = inputArray[1];
  40.                     String email = inputArray[2];
  41.  
  42.                     messagesMap.get(senderUsername).add(email);
  43.                     messagesMap.replace(senderUsername, messagesMap.get(senderUsername));
  44.                     messagesCountMap.replace(senderUsername, messagesCountMap.get(senderUsername)+1);
  45.  
  46.                     break;
  47.  
  48.                 case"Delete":
  49.  
  50.                     String deleteUsername = inputArray[1];
  51.  
  52.                     if(messagesMap.containsKey(deleteUsername)) {
  53.  
  54.                         messagesMap.remove(deleteUsername);
  55.                         messagesCountMap.remove(deleteUsername);
  56.  
  57.                     }else{
  58.  
  59.                         System.out.println(deleteUsername+" not found!");
  60.                     }
  61.                     break;
  62.  
  63.             }
  64.  
  65.             input = scanner.nextLine();
  66.         }
  67.  
  68.         int usersCount = messagesMap.size();
  69.  
  70.         System.out.println("Users count: "+usersCount);
  71.  
  72.         messagesCountMap.entrySet().stream().sorted((a,b)-> {
  73.  
  74.             int res = b.getValue().compareTo(a.getValue());
  75.  
  76.             if(res == 0){
  77.  
  78.                 res = a.getKey().compareTo(b.getKey());
  79.             }
  80.  
  81.             return res;
  82.  
  83.         }).forEach(entry -> {
  84.  
  85.             String username = entry.getKey();
  86.  
  87.             System.out.println(username);
  88.  
  89.             for(String currentEmail : messagesMap.get(username)){
  90.  
  91.                 System.out.println(String.format(" - %s",currentEmail));
  92.             }
  93.  
  94.         });
  95.  
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement