SHARE
TWEET

Untitled

a guest Nov 11th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package AssociativeArrays;
  2.  
  3. import java.util.*;
  4.  
  5. public class ForceBook {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         String input = scanner.nextLine();
  9.         TreeMap<String, List<String>> sideUsers = new TreeMap<>();
  10.         while (!input.equalsIgnoreCase("Lumpawaroo")) {
  11.             if (input.contains("|")) {
  12.                 String[] tokens = input.split("\\|");
  13.                 tokens[0] = tokens[0].trim();
  14.                 tokens[1] = tokens[1].trim();
  15.                 boolean isContaining = false;
  16.                 for (Map.Entry<String, List<String>> stringListEntry : sideUsers.entrySet()) {
  17.                     if (stringListEntry.getValue().contains(tokens[1])) {
  18.                         isContaining = true;
  19.                         break;
  20.                     }
  21.                 }
  22.                 if (!sideUsers.containsKey(tokens[0]) && !isContaining) {
  23.                     sideUsers.put(tokens[0], new ArrayList<>());
  24.                     sideUsers.get(tokens[0]).add(tokens[1]);
  25.                 } else {
  26.                     if (sideUsers.containsKey(tokens[0])
  27.                             && !isContaining
  28.                             && !sideUsers.get(tokens[0]).contains(tokens[1])) {
  29.                         sideUsers.get(tokens[0]).add(tokens[1]);
  30.                     }
  31.                 }
  32.             } else {
  33.                 String[] tokens = input.split("->");
  34.                 tokens[0] = tokens[0].trim();
  35.                 tokens[1] = tokens[1].trim();
  36.                 for (Map.Entry<String, List<String>> stringListEntry : sideUsers.entrySet()) {
  37.                     if (stringListEntry.getValue().contains(tokens[0])) {
  38.                         stringListEntry.getValue().remove(tokens[0]);
  39.                         break;
  40.                     }
  41.                 }
  42.                 if (!sideUsers.containsKey(tokens[1])) {
  43.                     sideUsers.put(tokens[1], new ArrayList<>());
  44.                     sideUsers.get(tokens[1]).add(tokens[0]);
  45.                 } else {
  46.                     if (sideUsers.containsKey(tokens[1]) &&
  47.                             !sideUsers.get(tokens[1]).contains(tokens[0])) {
  48.                                  sideUsers.get(tokens[1]).add(tokens[0]);
  49.                     }
  50.                 }
  51.                 System.out.printf("%s joins the %s side!%n", tokens[0], tokens[1]);
  52.             }
  53.             input = scanner.nextLine();
  54.         }
  55.         sideUsers.entrySet()
  56.                 .stream()
  57.                 .filter(a -> a.getValue().size() > 0)
  58.                 .sorted(Map.Entry.<String, List<String>>comparingByValue(Comparator.comparing(List::size)).reversed())
  59.                 .forEach(s -> {
  60.                     System.out.printf("Side: %s, Members: %d%n", s.getKey(), s.getValue().size());
  61.                     s.getValue()
  62.                             .stream()
  63.                             .sorted(String::compareTo)
  64.                             .forEach(e -> System.out.printf("! %s%n", e));
  65.                 });
  66.     }
  67. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top