LardaX

LogsAggregator

Jan 25th, 2017
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. import java.util.Map;
  2. import java.util.Scanner;
  3. import java.util.TreeMap;
  4.  
  5. public class LogsAggregator {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         int count = Integer.parseInt(scanner.nextLine());
  9.  
  10.         TreeMap<String, TreeMap<String, Integer>> userLogs = new TreeMap<>();
  11.  
  12.         for (int i = 0; i < count; i++) {
  13.             String[] logInformation = scanner.nextLine().split(" ");
  14.             String ip = logInformation[0];
  15.             String user = logInformation[1];
  16.             int duration = Integer.parseInt(logInformation[2]);
  17.  
  18.             insertUser(userLogs, user);
  19.             insertLogInfo(userLogs, user, ip, duration);
  20.         }
  21.  
  22.         TreeMap<String, Integer> userLogsTotalDuration = new TreeMap<>();
  23.  
  24.         for (String user : userLogs.keySet()) {
  25.             int totalDuration = 0;
  26.             for (Integer duration : userLogs.get(user).values()) {
  27.                 totalDuration += duration;
  28.             }
  29.             userLogsTotalDuration.put(user, totalDuration);
  30.         }
  31.  
  32.         userLogsTotalDuration.entrySet().forEach(entry -> {
  33.             System.out.println(entry.getKey() + ": " + entry.getValue() +
  34.                     " [" + String.join(", ", userLogs.get(entry.getKey()).keySet()) + "]");
  35.         });
  36.        
  37.         //    for (String user : userLogsTotalDuration.keySet()) {
  38.         //        System.out.println(user + ": " + userLogsTotalDuration.get(user) +
  39.         //        " [" + String.join(", ", userLogs.get(user).keySet()) + "]");
  40.         //    }
  41.  
  42.     }
  43.  
  44.     private static void insertLogInfo(TreeMap<String, TreeMap<String, Integer>> userLogs, String user, String ip, int duration) {
  45.         if (!userLogs.get(user).containsKey(ip)) {
  46.             userLogs.get(user).put(ip, 0);
  47.         }
  48.         userLogs.get(user).put(ip, userLogs.get(user).get(ip) + duration);
  49.     }
  50.  
  51.     private static void insertUser(TreeMap<String, TreeMap<String, Integer>> userLogs, String user) {
  52.         if (!userLogs.containsKey(user)) {
  53.             userLogs.put(user, new TreeMap<>());
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment