Advertisement
SIRAKOV4444

Untitled

Apr 9th, 2020
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. package com.company;
  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. int capacity = Integer.parseInt(scanner.next());
  12. String input = scanner.nextLine();
  13.  
  14. Map <String, Integer> sentMessages = new LinkedHashMap<>();
  15. Map <String, Integer> receivedMessages = new LinkedHashMap<>();
  16.  
  17. while (!input.equals("Statistics")) {
  18. String [] commands = input.split("=");
  19.  
  20. String commandParts = commands [0];
  21. switch (commandParts) {
  22. case "Add":
  23. String user = commands [1];
  24. int sent = Integer.parseInt(commands [2]);
  25. int received = Integer.parseInt(commands[3]);
  26.  
  27. sentMessages.putIfAbsent(user, sent);
  28. receivedMessages.putIfAbsent(user, received);
  29. break;
  30. case "Message":
  31. String sender = commands [1];
  32. String receiver = commands [2];
  33.  
  34.  
  35. sentMessages.replace(sender, sentMessages.get(sender)+1);
  36. receivedMessages.replace(receiver, receivedMessages.get(receiver)+1);
  37.  
  38. if (sentMessages.get(sender) >= capacity || sentMessages.get(sender) + receivedMessages.get(sender) >= capacity) {
  39. sentMessages.remove(sender);
  40. receivedMessages.remove(sender);
  41.  
  42. System.out.printf("%s reached the capacity!%n", sender);
  43. }
  44. if (receivedMessages.get(receiver) >= capacity || receivedMessages.get(receiver) + sentMessages.get(receiver) >= capacity) {
  45. sentMessages.remove(receiver);
  46. receivedMessages.remove(receiver);
  47.  
  48. System.out.printf("%s reached the capacity!%n", receiver);
  49. }
  50. break;
  51. case "Empty":
  52. if (commands[1].equals("All")) {
  53. sentMessages.clear();
  54. receivedMessages.clear();
  55. } else if (sentMessages.containsKey(commands[1])) {
  56. sentMessages.remove(commands[1]);
  57. receivedMessages.remove(commands[1]);
  58. }
  59. break;
  60. }
  61. input = scanner.nextLine();
  62. }
  63. System.out.printf("Users count: %d%n", sentMessages.size());
  64.  
  65. receivedMessages.entrySet()
  66. .stream()
  67. .sorted((a,b) -> {
  68. int res = b.getValue().compareTo(a.getValue());
  69. if (res == 0) {
  70. a.getKey().compareTo(b.getKey());
  71. }
  72. return res;
  73. })
  74. .forEach(entry ->{
  75. String userName = entry.getKey();
  76. int r = entry.getValue();
  77. int s = sentMessages.get(userName);
  78.  
  79. System.out.printf("%s - %d%n", userName, r+s);
  80. });
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement