Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Uprajnenie;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.TreeMap;
- public class UserLogs {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- // TreeMap to store users' logs, sorted alphabetically by username
- TreeMap<String, LinkedHashMap<String, Integer>> users = fillUsersMap(scanner);
- // Print the users' logs
- printUsersMap(users);
- scanner.close();
- }
- // Method to fill the users' map with logs
- private static TreeMap<String, LinkedHashMap<String, Integer>> fillUsersMap(Scanner scanner) {
- TreeMap<String, LinkedHashMap<String, Integer>> users = new TreeMap<>();
- String input = scanner.nextLine();
- while (!input.equals("end")) {
- // Split input to extract IP address and username
- String internetProtocol = input.split(" ")[0].split("=")[1];
- String username = input.split(" ")[2].split("=")[1];
- // Update the users' map with the log entry
- users.putIfAbsent(username, new LinkedHashMap<>());
- users.get(username).put(internetProtocol, users.get(username).getOrDefault(internetProtocol, 0) + 1);
- input = scanner.nextLine();
- }
- return users;
- }
- // Method to print the users' logs
- private static void printUsersMap(TreeMap<String, LinkedHashMap<String, Integer>> users) {
- users.forEach((username, ipsMap) -> {
- System.out.println(username + ": ");
- int ipCount = ipsMap.size();
- int currentIpIndex = 0;
- for (Map.Entry<String, Integer> ipEntry : ipsMap.entrySet()) {
- System.out.print(ipEntry.getKey() + " => " + ipEntry.getValue());
- if (currentIpIndex < ipCount - 1) {
- System.out.print(", ");
- } else {
- System.out.print(".");
- }
- currentIpIndex++;
- }
- System.out.println();
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement