Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package FinalExam;
- import java.lang.invoke.SwitchPoint;
- import java.util.*;
- public class FirstConcert {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String,List<String>> bandsMembers = new LinkedHashMap<>();
- Map<String,Integer> bandsTimes = new LinkedHashMap<>();
- String input = scanner.nextLine();
- while (!input.equals("start of concert")){
- String[] token = input.split("; ");
- String command = token[0];
- switch (command){
- case "Add":
- String bandName = token[1];
- String[] members = token[2].trim().split(", ");
- bandsMembers.putIfAbsent(bandName,new ArrayList<>());
- List<String> member = bandsMembers.get(bandName);
- for (int i = 0; i <members.length ; i++) {
- if (!member.contains(members[i])){
- bandsMembers.get(bandName).add(members[i]);
- }
- }
- break;
- case "Play":
- bandName=token[1];
- int time = Integer.parseInt(token[2]);
- if (bandsTimes.containsKey(bandName)){
- bandsTimes.put(bandName,bandsTimes.get(bandName)+time);
- } else {
- bandsTimes.put(bandName,time);
- }
- break;
- }
- input=scanner.nextLine();
- }
- String finalBandName = scanner.nextLine();
- int totalTime = 0;
- for (Integer value : bandsTimes.values()) {
- totalTime+=value;
- }
- System.out.println("Total time: "+totalTime);
- bandsTimes.entrySet()
- .stream()
- .sorted(Map.Entry.<String,Integer>comparingByValue((a,b)->b-a).thenComparing((a,b)->a.getKey().compareTo(b.getKey())))
- .forEach(e-> System.out.printf("%s -> %d%n",e.getKey(),e.getValue()));
- System.out.println(finalBandName);
- bandsMembers.get(finalBandName)
- .stream()
- .forEach(entry -> System.out.printf("=> %s%n",entry));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement