Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Да се имплементира класа за аудиција Audition со следните методи:
- void addParticpant(String city, String code, String name, int age) додава нов кандидат со код code, име и возраст за аудиција во даден град city. Во ист град не се дозволува додавање на кандидат со ист код како некој претходно додаден кандидат (додавањето се игнорира, а комплексноста на овој метод треба да биде O(1))
- void listByCity(String city) ги печати сите кандидати од даден град подредени според името, а ако е исто според возраста (комплексноста на овој метод не треба да надминува O(n∗log2(n)), каде n е бројот на кандидати во дадениот град).
- */
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.Set;
- import java.util.TreeMap;
- class Participant {
- String city, code, name;
- int age;
- public Participant(String city, String code, String name, int age) {
- super();
- this.city = city;
- this.code = code;
- this.name = name;
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public int getAge() {
- return age;
- }
- @Override
- public String toString() {
- return String.format("%s %s %s", code, name, age);
- }
- @Override public int hashCode() {
- return code.hashCode();
- }
- @Override
- public boolean equals(Object obj) {
- Participant other = (Participant) obj;
- if (code.equals(other.code))
- return true;
- return false;
- }
- }
- class Audition {
- Map<String, Set<Participant>> participants;
- public Audition() {
- participants = new TreeMap<>();
- }
- public void addParticpant(String city, String code, String name, int age) {
- participants.computeIfAbsent(city, key -> new HashSet<>());
- participants.get(city).add(new Participant(city, code, name, age));
- }
- void listByCity(String city) {
- participants.get(city).stream()
- .sorted(Comparator.comparing(Participant::getName).thenComparing(Participant::getAge))
- .forEach(System.out::println);
- }
- }
- public class AuditionTest {
- public static void main(String[] args) {
- Audition audition = new Audition();
- List<String> cities = new ArrayList<String>();
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNextLine()) {
- String line = scanner.nextLine();
- String[] parts = line.split(";");
- if (parts.length > 1) {
- audition.addParticpant(parts[0], parts[1], parts[2], Integer.parseInt(parts[3]));
- } else {
- cities.add(line);
- }
- }
- for (String city : cities) {
- System.out.printf("+++++ %s +++++\n", city);
- audition.listByCity(city);
- }
- scanner.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment