Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- 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();
- }
- }
- class Audition {
- Map<String,List<Person>> mapa;
- public Audition() {
- mapa = new HashMap<>();
- }
- public void addParticpant(String city,String code,String name,int age){
- if(!mapa.containsKey(city)){
- mapa.put(city,new ArrayList<>());
- mapa.get(city).add(new Person(code, name, age));
- }
- else {
- boolean DaliIstKod = mapa.get(city).stream().noneMatch(p -> p.getCode().equals(code));
- if(DaliIstKod)
- mapa.get(city).add(new Person(code, name, age));
- }
- }
- public void listByCity(String city){
- mapa.get(city).stream().sorted(Person.poImeiGodina).forEach(System.out::println);
- }
- }
- class Person{
- String code;
- String name;
- int age;
- static Comparator<Person> poImeiGodina = Comparator.comparing(Person::getName).thenComparing(Person::getAge).thenComparing(Person::getCode);
- public Person(String code, String name, int age) {
- this.code = code;
- this.name = name;
- this.age = age;
- }
- public String getCode() {
- return code;
- }
- public String getName() {
- return name;
- }
- public int getAge() {
- return age;
- }
- @Override
- public String toString() {
- return code +
- " " + name +
- " " + age;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment