Advertisement
Martina312

[НП] - Audition

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