Advertisement
Guest User

JavaBasicsLogsAggregator

a guest
Jun 2nd, 2014
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.99 KB | None | 0 0
  1. public class First {
  2.     private static List<Person> users = new ArrayList<Person>();
  3.    
  4.     public static void main(String[] args) {
  5.         Scanner sc = new Scanner(System.in);
  6.        
  7.         int nums = sc.nextInt();
  8.         sc.nextLine();
  9.         for (int i = 0; i < nums; i++) {
  10.             String[] userInfo = sc.nextLine().split("\\s+");
  11.             String ip = userInfo[0];
  12.             String name = userInfo[1];
  13.             int logs = Integer.parseInt(userInfo[2]);
  14.             if (!userExists(name)) {
  15.                 Person user = new Person();
  16.                 user.setName(name);
  17.                 users.add(user);
  18.             }
  19.             getUser(name).setIp(ip);
  20.             getUser(name).log(logs);
  21.         }
  22.        
  23.         Collections.sort(users, new Comparator<Person>() {
  24.             public int compare(Person result1, Person result2) {
  25.                 return result1.getName().compareTo(result2.getName());
  26.             }
  27.         });
  28.        
  29.         getUsersInfo();
  30.     }
  31.    
  32.     private static boolean userExists(String name) {
  33.         for (Person p : users) {
  34.             if (p.getName().equals(name)) {
  35.                 return true;
  36.             }
  37.         }
  38.         return false;
  39.     }
  40.    
  41.     private static Person getUser(String name) {
  42.         for (Person p : users) {
  43.             if (p.getName().equals(name)) {
  44.                 return p;
  45.             }
  46.         }
  47.         return new Person();
  48.     }
  49.    
  50.     private static void getUsersInfo() {
  51.         for (Person p : users) {
  52.             System.out.println(p.getName() + ": " + p.getLogs() + " " + p.getIps());
  53.         }
  54.     }
  55. }
  56.  
  57. class Person {
  58.     private String _name;
  59.     private List<String> _ips = new ArrayList<String>();
  60.     private int _logs;
  61.    
  62.     public void setName(String name) {
  63.         this._name = name;
  64.     }
  65.    
  66.     public void setIp(String ip) {
  67.         if (!this._ips.contains(ip)) {
  68.             this._ips.add(ip);
  69.         }
  70.     }
  71.    
  72.     public void log(int log) {
  73.         this._logs += log;
  74.     }
  75.    
  76.     public String getName() {
  77.         return this._name;
  78.     }
  79.    
  80.     public String getIps() {
  81.         Collections.sort(this._ips, Collections.reverseOrder());
  82.         String ip = "[";
  83.         for (int i = this._ips.size()-1; i >= 0; i--) {
  84.             ip += this._ips.get(i) + ", ";
  85.         }
  86.         ip = ip.replaceAll(", $", "");
  87.         ip += "]";
  88.         return ip;
  89.     }
  90.    
  91.     public int getLogs() {
  92.         return this._logs;
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement