Andziev

Audition (JAVA 8)

Dec 24th, 2016
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.02 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.*;
  3.  
  4. public class AuditionTest {
  5.    
  6.     public static void main(String[] args) {
  7.         Audition audition = new Audition();
  8.         List<String> cities = new ArrayList<String>();
  9.         Scanner scanner = new Scanner(System.in);
  10.         while (scanner.hasNextLine()) {
  11.             String line = scanner.nextLine();
  12.             String[] parts = line.split(";");
  13.             if (parts.length > 1) {
  14.                 audition.addParticipant(parts[0], parts[1], parts[2],
  15.                         Integer.parseInt(parts[3]));
  16.             } else {
  17.                 cities.add(line);
  18.             }
  19.         }
  20.         for (String city : cities) {
  21.             System.out.printf("+++++ %s +++++\n", city);
  22.             audition.listByCity(city);
  23.         }
  24.         scanner.close();
  25.     }
  26. }
  27. class Participant {
  28.    
  29.     private String code;
  30.     private String name;
  31.     private int age;
  32.    
  33.     public Participant(String code, String name, int age) {
  34.         super();
  35.         this.code = code;
  36.         this.name = name;
  37.         this.age = age;
  38.     }
  39.  
  40.     public String getCode() {
  41.         return code;
  42.     }
  43.  
  44.     public String getName() {
  45.         return name;
  46.     }
  47.  
  48.     public int getAge() {
  49.         return age;
  50.     }
  51.     public String toString () {
  52.         return code + " " + name + " " + age;
  53.     }
  54.    
  55. }
  56. class Audition {
  57.     private Map <String,List<Participant>> participants;
  58.    
  59.     public Audition () {
  60.         participants = new HashMap <> ();
  61.     }
  62.     public void addParticipant (String city, String code, String name, int age) {
  63.         List <Participant> list = new LinkedList <> ();
  64.         if(participants.containsKey(city)) {
  65.             list = participants.get(city);
  66.             for(Participant p : list) {
  67.                 if(p.getCode().equals(code))
  68.                     return;
  69.             }
  70.             list.add(new Participant(code,name,age));
  71.             participants.put(city,list);
  72.         }
  73.         else {
  74.             list.add(new Participant(code,name,age));
  75.             participants.put(city,list);
  76.         }  
  77.     }
  78.     public void listByCity (String city) {     
  79.         participants.get(city)
  80.                     .stream()
  81.                     .sorted(Comparator.comparing(Participant::getName)
  82.                                       .thenComparing(Participant::getAge)
  83.                                       .thenComparing(Participant::getCode))
  84.                     .forEach(each -> System.out.println(each));
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment