/
GermanezZ
/
JavaExercises
Обзор
Документация
Войти
/
GermanezZ
/
JavaExercises
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
AllMetanitLessons/Collections/Set/ComparableProg.java
138 строк
3 KB
germa
Уроки по Metanit
04 дек 2024, 20:39
04 дек 2024, 20:39
48d575a
Код
Авторство
О чём код?
package AllMetanitLessons.Collections.Set; import org.jetbrains.annotations.NotNull; import javax.imageio.plugins.jpeg.JPEGImageWriteParam; import java.io.IOException; import java.time.Period; import java.util.Comparator; import java.util.TreeSet; public class ComparableProg { public static void main(String[] args) { /* Comparator<Person> comp = new PersonNameComp().thenComparing(new PersonAgeComp()); TreeSet<Person> people = new TreeSet<>(comp); people.add(new Person("Tom",21)); people.add(new Person("Ann",18)); people.add(new Person("Bob",50)); for (Person p : people) { System.out.println(p.getName()); } } } class Person implements Comparable<Person>{ private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public int compareTo(Person o) { return name.compareTo(o.getName()); } } // ИЛИ ТАК class PersonNameComp implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return o1.getName().compareTo(o2.getName()); } } class PersonAgeComp implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return Integer.compare(o1.getAge(), o2.getAge());*/ try { Comparator<Person> pcomp = new PersonNameComp().thenComparing(new PersonAgeComp()); TreeSet<Person> people = new TreeSet<>(pcomp); people.add(new Person("German",21)); people.add(new Person("Bill",13)); people.add(new Person("German",20)); people.add(new Person("Tim",44)); people.add(new Person("Tomas",78)); people.add(new Person("Tom",22)); people.add(new Person("German", 33)); for (Person p: people){ System.out.println(p.getName() + " " + p.getAge()); } }catch (Exception exc){ System.out.println(exc.getMessage()); } } } class Person implements Comparable<Person>{ private String name; private int age; public Person(String name, int age) throws Exception { if (!(name).isEmpty()){ this.name = name; }else throw new Exception("Введите корректное имя человека "); if (age > 0 && age < 120){ this.age = age; }else throw new Exception("Введите корректный возраст у " + name); } public String getName() { return name; } public int getAge() { return age; } @Override public int compareTo(@NotNull Person o) { return name.compareTo(o.getName()); } } class PersonNameComp implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return o1.getName().compareTo(o2.getName()); } } class PersonAgeComp implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return Integer.compare(o1.getAge(), o2.getAge()); } }