Сравнение объектов — это как создание собственного рецепта для сортировки: ты сам выбираешь, по каким критериям и как организовать данные.
1. Создание компаратора
Чтобы начать, создадим компаратор, который будет сортировать людей по возрасту. Это делается с помощью простого класса:
public class AgeComparator implements Comparator<Person> {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.getAge(), p2.getAge());
}
}
Таким образом, мы указали, что "младший" человек — это тот, у кого возраст меньше.
2. Сортировка коллекции
Теперь, когда компаратор готов, мы можем использовать его для сортировки списка:
Collections.sort(people, new AgeComparator());
Теперь наш список упорядочен по возрасту, и мы можем легко узнать, кто старше.
3. Лямбда-выражения
С приходом Java 8 нам стали доступны лямбда-выражения, которые позволяют писать код короче и чище:
Collections.sort(people, (p1, p2) -> Integer.compare(p1.getAge(), p2.getAge()));