Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. package Exam03AugustFinal;
  2.  
  3. import java.util.Scanner;
  4. import java.util.TreeMap;
  5.  
  6. public class MessagesManager {
  7. public static class User{
  8. String name;
  9. int received;
  10. int sent;
  11. User(String name,int received,int sent){
  12. this.name=name;
  13. this.received=received;
  14. this.sent=sent;
  15. }
  16.  
  17. public String getName() {
  18. return name;
  19. }
  20.  
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24.  
  25. public int getReceived() {
  26. return received;
  27. }
  28.  
  29. public void setReceived(int received) {
  30. this.received = received;
  31. }
  32.  
  33. public int getSent() {
  34. return sent;
  35. }
  36.  
  37. public void setSent(int sent) {
  38. this.sent = sent;
  39. }
  40. }
  41. public static void main(String[] args) {
  42. Scanner scanner = new Scanner(System.in);
  43. TreeMap<String,User>usersMessages=new TreeMap<>();
  44. int limit=Integer.parseInt(scanner.nextLine());
  45. String input=scanner.nextLine();
  46. while (!"Statistics".equals(input)){
  47. String[] tokens=input.split("=");
  48. switch (tokens[0]){
  49. case "Add":
  50. String name=tokens[1];
  51. String send=tokens[2];
  52. String received=tokens[3];
  53. User user=new User(name,Integer.parseInt(received),Integer.parseInt(send));
  54. if(!usersMessages.containsKey(name)){
  55. usersMessages.put(name,user);
  56. }
  57. break;
  58. case "Message":
  59. if(usersMessages.containsKey(tokens[1]) && usersMessages.containsKey(tokens[2])){
  60. usersMessages.get(tokens[1]).setSent(usersMessages.get(tokens[1]).getSent()+1);
  61. usersMessages.get(tokens[2]).setReceived(usersMessages.get(tokens[2]).getReceived()+1);
  62. if(usersMessages.get(tokens[1]).getSent()+usersMessages.get(tokens[1]).getReceived()>=limit){
  63. usersMessages.remove(tokens[1]);
  64. System.out.printf("%s reached the capacity!%n",tokens[1]);
  65. }
  66. if(usersMessages.get(tokens[2]).getSent()+usersMessages.get(tokens[2]).getReceived()>=limit){
  67. usersMessages.remove(tokens[2]);
  68. System.out.printf("%s reached the capacity!%n",tokens[2]);
  69. }
  70. }
  71. break;
  72. case "Empty":
  73. if(usersMessages.containsKey(tokens[1])){
  74. usersMessages.remove(tokens[1]);
  75. }else if(tokens[1].equals("All")){
  76. usersMessages.clear();
  77. }
  78. break;
  79. }
  80. input=scanner.nextLine();
  81. }
  82. System.out.println("Users count: "+usersMessages.size());
  83. usersMessages.entrySet().stream()
  84. .sorted((e1,e2)-> e2.getValue().getReceived()-e1.getValue().getReceived()).forEach(e->{
  85. int sum=e.getValue().getSent()+e.getValue().getReceived();
  86. System.out.printf("%s - %d%n",e.getKey(),sum);
  87. });
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement