Advertisement
IvanIYankov

Concert

Apr 1st, 2020
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. package ExamPrepTwo.TewentyFouththJuly;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Scanner;
  7.  
  8. public class Concert {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.  
  12.         HashMap<String, ArrayList<String>> bandMembers = new HashMap<>();
  13.         HashMap<String, Integer> bandTime = new HashMap<>();
  14.  
  15.         String commandsPrev = scanner.nextLine();
  16.  
  17.         while (!commandsPrev.equals("start of concert")){
  18.             String[] commands = commandsPrev.split(";\\s+");
  19.             String commandType = commands[0];
  20.             String bandName = commands[1];
  21.             switch (commandType){
  22.                 case "Add":
  23.                     if (!bandMembers.containsKey(bandName)) {
  24.                         bandMembers.put(bandName, new ArrayList<>());
  25.                     }
  26.                     List<String> membersFromBand = bandMembers.get(bandName);
  27.                     String[] members = commands[2].trim().split(", ");
  28.                     for (int i = 0; i < members.length; i++) {
  29.                         if (!membersFromBand.contains(members[i])){
  30.                             membersFromBand.add(members[i]);
  31.                         }
  32.                     }
  33.                     break;
  34.                 case "Play":
  35.                     bandTime.putIfAbsent(bandName, 0);
  36.                     int time = Integer.parseInt(commands[2]);
  37.                     bandTime.put(bandName, bandTime.get(bandName) + time);
  38.                     break;
  39.             }
  40.  
  41.             commandsPrev = scanner.nextLine();
  42.         }
  43.         int totalTime = 0;
  44.         for (Integer time : bandTime.values()) {
  45.             totalTime += time;
  46.         }
  47.         System.out.println("Total time: " + totalTime);
  48.  
  49.         bandTime.entrySet().stream()
  50.                 .sorted((a, b) -> {
  51.                    if (a != b){
  52.                        return Integer.compare(b.getValue(), a.getValue());
  53.                    } else {
  54.                        return a.getKey().compareTo(b.getKey());
  55.                    }
  56.                 })
  57.                 .forEach(e -> {
  58.                     System.out.println(String.format("%s -> %d", e.getKey(), e.getValue()));
  59.                 });
  60.  
  61.         String lastBandCommand = scanner.nextLine();
  62.         System.out.println(lastBandCommand);
  63.         List<String> allMembers = bandMembers.get(lastBandCommand);
  64.         for (String allMember : allMembers) {
  65.             System.out.println(String.format("=> %s", allMember));
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement