Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import javafx.util.Pair;
- import javax.xml.crypto.dsig.keyinfo.KeyValue;
- import java.lang.reflect.Array;
- import java.security.KeyStore;
- import java.text.Collator;
- import java.text.DecimalFormat;
- import java.util.*;
- import java.util.function.Predicate;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import java.util.stream.Collector;
- import java.util.stream.Collectors;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int totalTime = 0;
- Map<String, List<String>> band = new LinkedHashMap<>();
- Map<String, Integer> bandTime = new LinkedHashMap<>();
- String input = "";
- while(!"start of concert".equals(input = scanner.nextLine())){
- String[] tokens = input.split("; ");
- String command = tokens[0];
- String bandName = tokens[1];
- switch (command){
- case "Add":
- List<String> members = Arrays.stream(tokens[2].split(", ")).collect(Collectors.toList());
- if(!band.containsKey(bandName)){
- band.put(bandName, members);
- }else{
- for (String currentMember : members) {
- if(!band.get(bandName).contains(currentMember))band.get(bandName).add(currentMember);
- }
- }
- break;
- case "Play":
- Integer playTime = Integer.parseInt(tokens[2]);
- totalTime += playTime;
- if(!bandTime.containsKey(bandName)){
- bandTime.put(bandName, playTime);
- }else{
- bandTime.put(bandName, bandTime.get(bandName) + playTime);
- }
- break;
- }
- }
- bandTime = bandTime
- .entrySet()
- .stream()
- .sorted((a, b) -> {
- if(a.getValue() < b.getValue()){
- return 1;
- }else if(a.getValue() > b.getValue()){
- return -1;
- }else{
- return a.getKey().compareTo(b.getKey());
- }
- }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
- (newVal, oldVal) -> oldVal, LinkedHashMap::new));
- System.out.println("Total time: " + totalTime);
- for (Map.Entry<String, Integer> entry : bandTime.entrySet()) {
- System.out.printf("%s -> %d\n", entry.getKey(), entry.getValue());
- }
- String enterName = scanner.nextLine();
- List<String> members = band.get(enterName);
- System.out.println(enterName);
- for (String member : members) {
- System.out.printf("=> %s\n", member);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement