Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package finalExamPrep;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- public class MessagesManager {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String,Integer>allSentM=new LinkedHashMap<>();
- Map<String,Integer>allReceivedm=new LinkedHashMap<>();
- int limit=Integer.parseInt(scanner.nextLine());
- String input=scanner.nextLine();
- while (!input.equals("Statistics")){
- String []token=input.split("=");
- String command=token[0];
- if (command.equals("Add")) {
- String name=token[1];
- int sentM=Integer.parseInt(token[2]);
- int receivedM=Integer.parseInt(token[3]);
- if (!allSentM.containsKey(name) && !allReceivedm.containsKey(name)) {
- allSentM.put(name, sentM);
- allReceivedm.put(name, receivedM);
- }
- }else if (command.equals("Message")){
- String sender=token[1];
- String receiver=token[2];
- if (allSentM.containsKey(sender)&& allSentM.containsKey(receiver)){
- allSentM.put(sender,allSentM.get(sender)+1);
- allReceivedm.put(receiver,allReceivedm.get(receiver)+1);
- if (allSentM.get(sender)+allReceivedm.get(sender)>=limit){
- allReceivedm.remove(sender);
- allSentM.remove(sender);
- System.out.println(sender+" reached the capacity!");
- }
- if (allSentM.get(receiver)+allReceivedm.get(receiver)>=limit){
- allReceivedm.remove(receiver);
- allSentM.remove(receiver);
- System.out.println(receiver+" reached the capacity!");
- }
- }
- }else if (command.equals("Empty")){
- String name = token[1];
- if (name.equals("All")){
- allSentM.clear();
- allReceivedm.clear();
- }else {
- if (allSentM.containsKey(name)) {
- allSentM.remove(name);
- allReceivedm.remove(name);
- }
- }
- }
- input=scanner.nextLine();
- }
- int count=0;
- for (Map.Entry<String, Integer> entry : allSentM.entrySet()) {
- count++;
- }
- System.out.println("User count: "+count);
- allReceivedm.entrySet().stream().sorted((f,s)->{
- int result=s.getValue().compareTo(f.getValue());
- if (result==0){
- result=f.getKey().compareTo(s.getKey());
- }
- return result;
- }).forEach(entry -> {
- System.out.println(entry.getKey()+" - "+(entry.getValue()+allSentM.get(entry.getKey())));
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement