Advertisement
Ligh7_of_H3av3n

10. Logs Aggregator

May 21st, 2024
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.67 KB | None | 0 0
  1. package Uprajnenie;
  2.  
  3. import java.util.Map;
  4. import java.util.Scanner;
  5. import java.util.Set;
  6. import java.util.TreeMap;
  7. import java.util.TreeSet;
  8.  
  9. public class LogsAggregator {
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.  
  13.  
  14.         int n = Integer.parseInt(scanner.nextLine());
  15.  
  16.         Map<String, UserData> userDataMap = new TreeMap<>();
  17.  
  18.         for (int i = 0; i < n; i++) {
  19.             String[] logData = scanner.nextLine().split(" ");
  20.             String ip = logData[0];
  21.             String user = logData[1];
  22.             int duration = Integer.parseInt(logData[2]);
  23.  
  24.             if (!userDataMap.containsKey(user)) {
  25.                 userDataMap.put(user, new UserData());
  26.             }
  27.  
  28.             userDataMap.get(user).addSession(ip, duration);
  29.         }
  30.  
  31.         for (Map.Entry<String, UserData> entry : userDataMap.entrySet()) {
  32.             String user = entry.getKey();
  33.             UserData userData = entry.getValue();
  34.  
  35.             System.out.printf("%s: %d [%s]%n", user, userData.getTotalDuration(), userData.getUniqueIPs());
  36.         }
  37.     }
  38.  
  39.     static class UserData {
  40.         private int totalDuration;
  41.         private Set<String> uniqueIPs;
  42.  
  43.         public UserData() {
  44.             totalDuration = 0;
  45.             uniqueIPs = new TreeSet<>();
  46.         }
  47.  
  48.         public void addSession(String ip, int duration) {
  49.             totalDuration += duration;
  50.             uniqueIPs.add(ip);
  51.         }
  52.  
  53.         public int getTotalDuration() {
  54.             return totalDuration;
  55.         }
  56.  
  57.         public String getUniqueIPs() {
  58.             return String.join(", ", uniqueIPs);
  59.         }
  60.     }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement