Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Fundamentals.Final_Exam._14_04_2018;
- import java.util.*;
- import java.util.stream.Collectors;
- public class Practice_Sessions {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- Map<String, List<String>> roadRacers = new TreeMap<>();
- String input = sc.nextLine() ;
- while (!input.equals("END")){
- String[] array = input.split("->");
- if(array[0].equals("Add")){
- String road = array[1];
- String racer = array[2];
- roadRacers.putIfAbsent(road, new ArrayList<>());
- roadRacers.get(road).add(racer);
- }else if(array[0].equals("Move")){
- String oldRoad = array[1];
- String racer = array[2];
- String newRoad = array[3];
- if(roadRacers.get(oldRoad).contains(racer)){
- roadRacers.get(oldRoad).remove(racer);
- roadRacers.get(newRoad).add(racer);
- }
- }else if(array[0].equals("Close")){
- String roadToClose = array[1];
- roadRacers.remove(roadToClose);
- }
- input = sc.nextLine();
- }
- Map<String,Integer> roadAndCountRacers = new LinkedHashMap<>();
- for (Map.Entry<String, List<String>> ss : roadRacers.entrySet()) {
- if(ss.getValue().size() > 0){
- roadAndCountRacers.put(ss.getKey(), ss.getValue().size());
- }
- }
- Map<String,Integer> sorted = new LinkedHashMap<>();
- sorted = roadAndCountRacers.entrySet().stream() // sorting
- .sorted(Map.Entry.<String,Integer>comparingByValue().reversed().thenComparing(Map.Entry.<String,Integer>comparingByKey()))
- .collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,(e1, e2)->e1,LinkedHashMap::new));
- System.out.println("Practice sessions:");
- for (Map.Entry<String, Integer> entry : sorted.entrySet()) {
- System.out.println(entry.getKey());
- roadRacers.get(entry.getKey()).forEach(e-> System.out.println("++"+e));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement