Advertisement
damesova

Me Tube Statistics [Mimi]

Apr 15th, 2019
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.22 KB | None | 0 0
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.Scanner;
  4.  
  5. public class _04_MeTubeStatistics {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         Map<String, Integer> view = new HashMap<>();
  10.         Map<String, Integer> rate = new HashMap<>();
  11.  
  12.         String line = "";
  13.         while (!"stats time".equals(line = scanner.nextLine())) {
  14.             if (line.contains("-")) {
  15.                 String[] viewLine = line.split("-");
  16.                 String name = viewLine[0];
  17.                 int watching = Integer.parseInt(viewLine[1]);
  18.  
  19.                 view.putIfAbsent(name, 0);
  20.                 view.put(name, view.get(name) + watching);
  21.  
  22.                 rate.putIfAbsent(name, 0);
  23.  
  24.             } else if (line.contains(":")) {
  25.                 String[] viewLine1 = line.split(":");
  26.  
  27.                 String name1 = viewLine1[1];
  28.                 String command = viewLine1[0];
  29.                 rate.putIfAbsent(name1, 0);
  30.  
  31.                 if (command.equals("like")) {
  32.                     rate.put(name1, rate.get(name1) + 1);
  33.                 } else if (command.equals("dislike")) {
  34.                     rate.put(name1, rate.get(name1) - 1);
  35.                 }
  36.             }
  37.         }
  38.  
  39.         String sortType = scanner.nextLine();
  40.  
  41.         if (sortType.equals("by likes")) {
  42.             rate.entrySet().stream()
  43.                     .sorted(Map.Entry.<String, Integer>comparingByValue().reversed())    //order by amount/descending-value
  44.                     .forEach(entry -> {
  45.                         System.out.println(String.format("%s - %d views - %d likes",
  46.                                 entry.getKey(), view.get(entry.getKey()),entry.getValue()));
  47.                     });
  48.         }
  49.  
  50.         if (sortType.equals("by views")){
  51.             view.entrySet().stream()
  52.                     .sorted(Map.Entry.<String, Integer>comparingByValue().reversed())    //order by amount/descending-value
  53.                     .forEach(entry -> {
  54.                         System.out.println(String.format("%s - %d views - %d likes",
  55.                                 entry.getKey(), entry.getValue(), rate.get(entry.getKey())));
  56.                     });
  57.         }
  58.     }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement