Advertisement
Guest User

Untitled

a guest
May 1st, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1. package L16DictionariesExercises;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.LinkedHashMap;
  7. import java.util.stream.Collectors;
  8.  
  9. public class Ex06UserLogs01 {
  10.     public static void main(String[] args) throws IOException {
  11.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  12.         LinkedHashMap<String, LinkedHashMap<String, Integer>> data = new LinkedHashMap<>();
  13.  
  14.         String input = reader.readLine();
  15.         while (! "end".equals(input)) {
  16.             String[] tokens = input.split("\\s+");
  17.  
  18.             String ip = tokens[0].substring(tokens[0].indexOf("=") + 1);
  19.             String user = tokens[2].substring(tokens[2].indexOf("=") + 1);
  20.  
  21.             data.putIfAbsent(user, new LinkedHashMap<>());
  22.             data.get(user).putIfAbsent(ip, 0);
  23.  
  24.             int count = data.get(user).get(ip) + 1;
  25.             data.get(user).put(ip, count);
  26.  
  27.             input = reader.readLine();
  28.         }
  29.  
  30.         data.entrySet()
  31.                 .stream()
  32.                 .sorted((a, b) -> a.getKey().compareToIgnoreCase(b.getKey()))
  33.                 .forEach(e -> {
  34.                     StringBuilder output = new StringBuilder();
  35.                     output.append(String.format("%s:", e.getKey()))
  36.                             .append(System.lineSeparator())
  37.                             .append(e.getValue().entrySet().stream()
  38.                                     .map(s -> String.format("%s => %s", s.getKey(), s.getValue()))
  39.                                     .collect(Collectors.joining(", ")))
  40.                             .append(".");
  41.                     System.out.println(output.toString());
  42.                 });
  43.  
  44.  
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement