Advertisement
Guest User

Followers\ Java

a guest
Apr 1st, 2020
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4.  
  5. public class products {
  6. public static void main(String[] args) {
  7. Scanner scanner = new Scanner(System.in);
  8. HashMap<String, List<Integer>> namesAndCount = new HashMap<>();
  9.  
  10. String line = scanner.nextLine();
  11. while (!"Log out".equals(line)) {
  12. String[] tokens = line.split("\\: ");
  13. String name = tokens[1];
  14. String command = tokens[0];
  15. switch (command){
  16. case"New follower":
  17. if(!namesAndCount.containsKey(name)){
  18. namesAndCount.put(name,new ArrayList<>());
  19. namesAndCount.get(name).add(0,0);
  20. namesAndCount.get(name).add(1,0);
  21. }
  22.  
  23. break;
  24. case"Like":
  25. int likes = Integer.parseInt(tokens[2]);
  26. if(!namesAndCount.containsKey(name)) {
  27. namesAndCount.put(name,new ArrayList<>());
  28. namesAndCount.get(name).add(0,likes);
  29. namesAndCount.get(name).add(1,0);
  30. }else{
  31. int oldLikes = namesAndCount.get(name).get(0);
  32. namesAndCount.get(name).set(0, oldLikes + likes);
  33. }
  34. break;
  35. case "Comment":
  36. int comment = 1;
  37. if(!namesAndCount.containsKey(name)){
  38. namesAndCount.put(name,new ArrayList<>());
  39. namesAndCount.get(name).add(0,0);
  40. namesAndCount.get(name).add(1,comment);
  41. }else{
  42. int oldComments = namesAndCount.get(name).get(1);
  43. namesAndCount.get(name).set(1, oldComments + comment);
  44. }
  45.  
  46. break;
  47. case "Blocked":
  48. if(namesAndCount.containsKey(name)){
  49. namesAndCount.remove(name, namesAndCount.get(name));
  50. }else{
  51. System.out.printf("%s doesn't exist.%n", name);
  52. }
  53.  
  54. break;
  55. }
  56.  
  57. line = scanner.nextLine();
  58. }
  59. System.out.printf("%d followers%n", namesAndCount.size());
  60. namesAndCount.entrySet().stream().sorted((f,s) ->{
  61. if(like(s.getValue()) == like(f.getValue())){
  62. return f.getKey().compareTo(s.getKey());
  63. }
  64. return Integer.compare(like(s.getValue()),like(f.getValue()));
  65. }).forEach(entry -> {
  66. System.out.printf("%s: %d%n",entry.getKey(),sun(entry.getValue()));
  67. });
  68.  
  69. }
  70. public static int sun(List<Integer>list){
  71. return list.get(0) + list.get(1);
  72.  
  73. }
  74. public static int like(List<Integer>list){
  75. return list.get(0);
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement