Advertisement
zh_stoqnov

UserLogs

Feb 10th, 2015
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. import java.util.Collections;
  2. import java.util.LinkedHashSet;
  3. import java.util.LinkedList;
  4. import java.util.Scanner;
  5. import java.util.TreeMap;
  6. import java.util.Map.Entry;
  7.  
  8. public class UserLogs {
  9. public static void main(String[] args) {
  10. Scanner sc = new Scanner(System.in);
  11. TreeMap<String, LinkedList<String>> users = new TreeMap<>();
  12. while(true) {
  13. String input = sc.nextLine().trim();
  14. if(input.equals("end")) {
  15. break;
  16. }
  17. String[] strings = input.split("=");
  18. String user = strings[strings.length - 1];
  19. String[] ips = strings[1].split(" ");
  20. String ip = ips[0];
  21. if(!users.containsKey(user)) {
  22. users.put(user, new LinkedList<String>());
  23. }
  24. LinkedList<String> ipCounts = new LinkedList<>();
  25.  
  26. ipCounts = users.get(user);
  27. ipCounts.add(ip);
  28. }
  29.  
  30. for(Entry<String, LinkedList<String>> user : users.entrySet()) {
  31. String name = user.getKey();
  32. LinkedList<String> ipCounts = user.getValue();
  33. System.out.print(name + ":\n");
  34. LinkedHashSet<String> set = new LinkedHashSet<>();
  35.  
  36. for(String ip : ipCounts) {
  37. int occurences = Collections.frequency(ipCounts, ip);
  38. set.add(ip + " => " + occurences);
  39. }
  40. String[] arr = set.toArray(new String[set.size()]);
  41.  
  42. for(int i = 0; i < arr.length - 1; i++) {
  43. System.out.print(arr[i] + ", ");
  44. }
  45. System.out.print(arr[arr.length - 1] + ".\n");
  46. }
  47.  
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement