Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Exam03AugustFinal;
- import java.util.Scanner;
- import java.util.TreeMap;
- public class MessagesManager {
- public static class User{
- String name;
- int received;
- int sent;
- User(String name,int received,int sent){
- this.name=name;
- this.received=received;
- this.sent=sent;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getReceived() {
- return received;
- }
- public void setReceived(int received) {
- this.received = received;
- }
- public int getSent() {
- return sent;
- }
- public void setSent(int sent) {
- this.sent = sent;
- }
- }
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- TreeMap<String,User>usersMessages=new TreeMap<>();
- int limit=Integer.parseInt(scanner.nextLine());
- String input=scanner.nextLine();
- while (!"Statistics".equals(input)){
- String[] tokens=input.split("=");
- switch (tokens[0]){
- case "Add":
- String name=tokens[1];
- String send=tokens[2];
- String received=tokens[3];
- User user=new User(name,Integer.parseInt(received),Integer.parseInt(send));
- if(!usersMessages.containsKey(name)){
- usersMessages.put(name,user);
- }
- break;
- case "Message":
- if(usersMessages.containsKey(tokens[1]) && usersMessages.containsKey(tokens[2])){
- usersMessages.get(tokens[1]).setSent(usersMessages.get(tokens[1]).getSent()+1);
- usersMessages.get(tokens[2]).setReceived(usersMessages.get(tokens[2]).getReceived()+1);
- if(usersMessages.get(tokens[1]).getSent()+usersMessages.get(tokens[1]).getReceived()>=limit){
- usersMessages.remove(tokens[1]);
- System.out.printf("%s reached the capacity!%n",tokens[1]);
- }
- if(usersMessages.get(tokens[2]).getSent()+usersMessages.get(tokens[2]).getReceived()>=limit){
- usersMessages.remove(tokens[2]);
- System.out.printf("%s reached the capacity!%n",tokens[2]);
- }
- }
- break;
- case "Empty":
- if(usersMessages.containsKey(tokens[1])){
- usersMessages.remove(tokens[1]);
- }else if(tokens[1].equals("All")){
- usersMessages.clear();
- }
- break;
- }
- input=scanner.nextLine();
- }
- System.out.println("Users count: "+usersMessages.size());
- usersMessages.entrySet().stream()
- .sorted((e1,e2)-> e2.getValue().getReceived()-e1.getValue().getReceived()).forEach(e->{
- int sum=e.getValue().getSent()+e.getValue().getReceived();
- System.out.printf("%s - %d%n",e.getKey(),sum);
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement