Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. package com.company;
  2.  
  3.  
  4. import java.util.*;
  5.  
  6. public class ForceBook {
  7. public static void main(String[] args) {
  8. Scanner scanner = new Scanner(System.in);
  9. HashMap<String, List<String>> users = new HashMap<>();
  10. String input = scanner.nextLine();
  11. while (!input.equals("Lumpawaroo")) {
  12. String[] tokens = null;
  13. if (input.contains("|")) {
  14. tokens = input.split(" \\| ");
  15. String forceSide = tokens[0];
  16. String forceUser = tokens[1];
  17. users.putIfAbsent(forceSide, new ArrayList<>());
  18. boolean isPresent = false;
  19. for (Map.Entry<String, List<String>> entry : users.entrySet()) {
  20. if (entry.getValue().contains(forceUser)) {
  21. entry.getValue().remove(forceUser);
  22. users.get(forceSide).add(forceUser);
  23. isPresent = true;
  24. break;
  25. }
  26. }
  27. if (!users.get(forceSide).contains(forceUser) && !isPresent) {
  28. users.get(forceSide).add(forceUser);
  29. }
  30. users.entrySet().stream().sorted((f, s) -> {
  31. int result = s.getValue().size() - f.getValue().size();
  32. if (result == 0) {
  33. result = f.getKey().compareTo(s.getKey());
  34. }
  35. return result;
  36. }).forEach(entry -> {
  37. System.out.printf("Side: %s, Members: %d%n", entry.getKey(), entry.getValue().size());
  38. entry.getValue().stream().sorted(String::compareTo)
  39. .forEach(user -> System.out.println("! " + user));
  40. });
  41. } else {
  42. tokens = input.split(" -> ");
  43. String forceUser = tokens[0];
  44. String forceSide = tokens[1];
  45. boolean isPresent = false;
  46. for (Map.Entry<String, List<String>> entry : users.entrySet()) {
  47. if (entry.getValue().contains(forceUser) && !entry.getKey().equals(forceSide)) {
  48. entry.getValue().remove(forceUser);
  49. users.putIfAbsent(forceSide, new ArrayList<>());
  50. users.get(forceSide).add(forceUser);
  51. isPresent = true;
  52. break;
  53. }
  54. }
  55. if (!isPresent) {
  56. users.putIfAbsent(forceSide, new ArrayList<>());
  57. users.get(forceSide).add(forceUser);
  58. }
  59. System.out.printf("%s joins the %s side!%n", forceUser, forceSide);
  60. }
  61. input = scanner.nextLine();
  62. }
  63. users.entrySet().stream().sorted((f, s) -> {
  64. int result = s.getValue().size() - f.getValue().size();
  65. if (result == 0) {
  66. result = f.getKey().compareTo(s.getKey());
  67. }
  68. return result;
  69. }).forEach(entry -> {
  70. if (entry.getValue().size() != 0) {
  71. System.out.printf("Side: %s, Members: %d%n", entry.getKey(), entry.getValue().size());
  72. entry.getValue().stream().sorted(String::compareTo)
  73. .forEach(user -> System.out.println("! " + user));
  74. }
  75. });
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement