Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package AssociativeArrays;
- import java.util.*;
- public class ForceBook {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String input = scanner.nextLine();
- TreeMap<String, List<String>> sideUsers = new TreeMap<>();
- while (!input.equalsIgnoreCase("Lumpawaroo")) {
- if (input.contains("|")) {
- String[] tokens = input.split("\\|");
- tokens[0] = tokens[0].trim();
- tokens[1] = tokens[1].trim();
- boolean isContaining = false;
- for (Map.Entry<String, List<String>> stringListEntry : sideUsers.entrySet()) {
- if (stringListEntry.getValue().contains(tokens[1])) {
- isContaining = true;
- break;
- }
- }
- if (!sideUsers.containsKey(tokens[0]) && !isContaining) {
- sideUsers.put(tokens[0], new ArrayList<>());
- sideUsers.get(tokens[0]).add(tokens[1]);
- } else {
- if (sideUsers.containsKey(tokens[0])
- && !isContaining
- && !sideUsers.get(tokens[0]).contains(tokens[1])) {
- sideUsers.get(tokens[0]).add(tokens[1]);
- }
- }
- } else {
- String[] tokens = input.split("->");
- tokens[0] = tokens[0].trim();
- tokens[1] = tokens[1].trim();
- for (Map.Entry<String, List<String>> stringListEntry : sideUsers.entrySet()) {
- if (stringListEntry.getValue().contains(tokens[0])) {
- stringListEntry.getValue().remove(tokens[0]);
- break;
- }
- }
- if (!sideUsers.containsKey(tokens[1])) {
- sideUsers.put(tokens[1], new ArrayList<>());
- sideUsers.get(tokens[1]).add(tokens[0]);
- } else {
- if (sideUsers.containsKey(tokens[1]) &&
- !sideUsers.get(tokens[1]).contains(tokens[0])) {
- sideUsers.get(tokens[1]).add(tokens[0]);
- }
- }
- System.out.printf("%s joins the %s side!%n", tokens[0], tokens[1]);
- }
- input = scanner.nextLine();
- }
- sideUsers.entrySet()
- .stream()
- .filter(a -> a.getValue().size() > 0)
- .sorted(Map.Entry.<String, List<String>>comparingByValue(Comparator.comparing(List::size)).reversed())
- .forEach(s -> {
- System.out.printf("Side: %s, Members: %d%n", s.getKey(), s.getValue().size());
- s.getValue()
- .stream()
- .sorted(String::compareTo)
- .forEach(e -> System.out.printf("! %s%n", e));
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement