Advertisement
Guest User

MessagesManager

a guest
Mar 30th, 2020
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.30 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.TreeMap;
  3.  
  4. public class MessagesManager {
  5.     public static void main(String[] args) {
  6.         Scanner scan = new Scanner(System.in);
  7.         int cap = Integer.parseInt(scan.nextLine());
  8.         String input = scan.nextLine();
  9.         TreeMap<String, Integer> sentMessages = new TreeMap<>();
  10.         TreeMap<String, Integer> receivedMessages = new TreeMap<>();
  11.  
  12.         while (!"Statistics".equals(input)) {
  13.             String[] tokens = input.split("=");
  14.             String command = tokens[0];
  15.             switch (command) {
  16.                 case "Add":
  17.                     String user = tokens[1];
  18.                     int sent = Integer.parseInt(tokens[2]);
  19.                     int received = Integer.parseInt(tokens[3]);
  20.                     sentMessages.putIfAbsent(user,sent);
  21.                     receivedMessages.putIfAbsent(user,received);
  22.                     break;
  23.                 case "Message":
  24.                     String sender = tokens[1];
  25.                     String receiver = tokens[2];
  26.                     if (sentMessages.containsKey(sender) && receivedMessages.containsKey(receiver)) {
  27.                         sentMessages.replace(sender, sentMessages.get(sender) + 1); //!!!!!!!!!!!!!!!!!!
  28.                         receivedMessages.replace(receiver, receivedMessages.get(receiver) + 1); //!!!!!!!!!!!!!!!!!!
  29.                         if (sentMessages.get(sender) + receivedMessages.get(sender) >= cap) {
  30.                             sentMessages.remove(sender);
  31.                             receivedMessages.remove(sender);
  32.                             System.out.printf("%s reached the capacity!%n", sender);
  33.                         }
  34.                         if (receivedMessages.get(receiver) + sentMessages.get(receiver) >= cap) {
  35.                             receivedMessages.remove(receiver);
  36.                             sentMessages.remove(receiver);
  37.                             System.out.printf("%s reached the capacity!%n", receiver);
  38.                         }
  39.                     }
  40.                     break;
  41.                 case "Empty":
  42.                     String delete = tokens[1];
  43.                     if (delete.equals("All")) {
  44.                         sentMessages.clear();
  45.                         receivedMessages.clear();
  46.                     } else if (sentMessages.containsKey(delete)) {
  47.                         sentMessages.remove(delete);
  48.                         receivedMessages.remove(delete);
  49.                     }
  50.                     break;
  51.             }
  52.             input = scan.nextLine();
  53.         }
  54.         System.out.println(String.format("Users count: %d",sentMessages.size()));
  55.         receivedMessages
  56.                 .entrySet()
  57.                 .stream()
  58.                 .sorted((a,b) -> {
  59.                     int res = Integer.compare(b.getValue(),a.getValue());
  60.                     if (res == 0) {
  61.                         int i = a.getKey().compareTo(b.getKey());
  62.                     }
  63.                     return res;
  64.                 })
  65.                 .forEach(entry ->{
  66.                     String user = entry.getKey();
  67.                     int r = entry.getValue();
  68.                     int s = sentMessages.get(user);
  69.                     System.out.println(String.format("%s - %d",user,r+s));
  70.                 });
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement