Advertisement
Zneeky

MessagesManager

Aug 8th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.00 KB | None | 0 0
  1. package finalExamPrep;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.Map;
  5. import java.util.Scanner;
  6.  
  7. public class MessagesManager {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         Map<String,Integer>allSentM=new LinkedHashMap<>();
  12.         Map<String,Integer>allReceivedm=new LinkedHashMap<>();
  13.  
  14.         int limit=Integer.parseInt(scanner.nextLine());
  15.         String input=scanner.nextLine();
  16.  
  17.         while (!input.equals("Statistics")){
  18.             String []token=input.split("=");
  19.             String command=token[0];
  20.  
  21.  
  22.             if (command.equals("Add")) {
  23.                 String name=token[1];
  24.                 int sentM=Integer.parseInt(token[2]);
  25.                 int receivedM=Integer.parseInt(token[3]);
  26.  
  27.                 if (!allSentM.containsKey(name) && !allReceivedm.containsKey(name)) {
  28.                     allSentM.put(name, sentM);
  29.                     allReceivedm.put(name, receivedM);
  30.                 }
  31.             }else if (command.equals("Message")){
  32.                 String sender=token[1];
  33.                 String receiver=token[2];
  34.  
  35.                 if (allSentM.containsKey(sender)&& allSentM.containsKey(receiver)){
  36.                     allSentM.put(sender,allSentM.get(sender)+1);
  37.                     allReceivedm.put(receiver,allReceivedm.get(receiver)+1);
  38.  
  39.                     if (allSentM.get(sender)+allReceivedm.get(sender)>=limit){
  40.                         allReceivedm.remove(sender);
  41.                         allSentM.remove(sender);
  42.                         System.out.println(sender+" reached the capacity!");
  43.                     }
  44.                     if (allSentM.get(receiver)+allReceivedm.get(receiver)>=limit){
  45.                         allReceivedm.remove(receiver);
  46.                         allSentM.remove(receiver);
  47.                         System.out.println(receiver+" reached the capacity!");
  48.                     }
  49.                 }
  50.             }else if (command.equals("Empty")){
  51.                 String name = token[1];
  52.                 if (name.equals("All")){
  53.                     allSentM.clear();
  54.                     allReceivedm.clear();
  55.                 }else {
  56.                     if (allSentM.containsKey(name)) {
  57.                         allSentM.remove(name);
  58.                         allReceivedm.remove(name);
  59.                     }
  60.                 }
  61.             }
  62.  
  63.  
  64.  
  65.             input=scanner.nextLine();
  66.         }
  67.         int count=0;
  68.         for (Map.Entry<String, Integer> entry : allSentM.entrySet()) {
  69.             count++;
  70.         }
  71.         System.out.println("User count: "+count);
  72.  
  73.         allReceivedm.entrySet().stream().sorted((f,s)->{
  74.             int result=s.getValue().compareTo(f.getValue());
  75.  
  76.             if (result==0){
  77.                 result=f.getKey().compareTo(s.getKey());
  78.             }
  79.             return result;
  80.         }).forEach(entry -> {
  81.             System.out.println(entry.getKey()+" - "+(entry.getValue()+allSentM.get(entry.getKey())));
  82.         });
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement