Advertisement
Guest User

Nikulden

a guest
Apr 5th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.91 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class NikuldensMeals {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.         Map<String, List<String>> guestsMealsMap = new TreeMap<>();
  8.         int countUnlike = 0;
  9.  
  10.         String command;
  11.         while (!"Stop".equals(command = scanner.nextLine())) {
  12.             String[] tokens = command.split("-");
  13.             String guest = tokens[1];
  14.             String meal = tokens[2];
  15.             switch (tokens[0]) {
  16.                 case "Like":
  17.                     guestsMealsMap.putIfAbsent(guest, new ArrayList<>());
  18.                     if (!guestsMealsMap.get(guest).contains(meal)) {
  19.                         guestsMealsMap.get(guest).add(meal);
  20.                     }
  21.                     break;
  22.                 case "Unlike":
  23.                     if (!guestsMealsMap.containsKey(guest)) {
  24.                         System.out.printf("%s is not at the party.%n", guest);
  25.                     } else {
  26.                         if (guestsMealsMap.get(guest).contains(meal)) {
  27.                             guestsMealsMap.get(guest).remove(meal);
  28.                             System.out.printf("%s doesn't like the %s.%n", guest, meal);
  29.                             countUnlike++;
  30.                         } else {
  31.                             System.out.printf("%s doesn't have the %s in his/her collection.%n", guest, meal);
  32.                         }
  33.                     }
  34.                     break;
  35.             }
  36.         }
  37.         guestsMealsMap
  38.                 .entrySet()
  39.                 .stream()
  40.                 .sorted((a, b) -> b.getValue().size() - a.getValue().size())
  41.                 .forEach(entry -> {
  42.                     System.out.printf("%s: ", entry.getKey());
  43.                     System.out.println(String.join(", ", entry.getValue()));
  44.                 });
  45.         System.out.printf("Unliked meals: %d", countUnlike);
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement