Advertisement
Guest User

Untitled

a guest
Apr 5th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1.  
  2. import java.util.LinkedHashMap;
  3. import java.util.Scanner;
  4.  
  5. public class MeTubeStatistics {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         LinkedHashMap<String, Integer> views = new LinkedHashMap<>();
  10.         LinkedHashMap<String, Integer> likes = new LinkedHashMap<>();
  11.  
  12.         String input = "";
  13.         while (!"stats time".equals(input = scanner.nextLine())) {
  14.  
  15.             String[] array = input.split("-|:");
  16.             if (input.contains("-")){
  17.  
  18.  
  19.                 String name = array[0];
  20.                 int like = Integer.parseInt(array[1]);
  21.  
  22.                views.putIfAbsent(name, 0);
  23.                views.put(name, views.get(name) + like);
  24.                likes.putIfAbsent(name, 0);
  25.  
  26.             }else if (input.contains(":")) {
  27.  
  28.                 String command = array[0];
  29.                 String name = array[1];
  30.  
  31.                 switch (command) {
  32.                     case "like":
  33.                         if (views.containsKey(name)) {
  34.                             likes.put(name, likes.get(name) + 1);
  35.                         }
  36.                         break;
  37.                     case "dislike":
  38.                         if (views.containsKey(name)) {
  39.                             likes.put(name, likes.get(name) - 1);
  40.                         }
  41.                         break;
  42.                 }
  43.             }
  44.  
  45.         }
  46.         String input2 = scanner.nextLine();
  47.  
  48.         if (input2.equals("by likes")) {
  49.             views.entrySet().stream().sorted((pair1, pair2) -> {
  50.                 return Integer.compare(likes.get(pair2.getKey()), likes.get(pair1.getKey()));
  51.             }).forEach(pair -> {
  52.                 System.out.println(String.format("%s - %d views - %d likes"
  53.                 , pair.getKey(), pair.getValue(), likes.get(pair.getKey())));
  54.             });
  55.  
  56.  
  57.         }else if (input2.equals("by views")){
  58.             views.entrySet().stream().sorted((pair1, pair2) -> {
  59.                 return Integer.compare(pair2.getValue(), pair1.getValue());
  60.             }).forEach(pair ->
  61.                     System.out.println(String.format("%s - %d views - %d likes"
  62.                     , pair.getKey(), pair.getValue(), likes.get(pair.getKey()))));
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement