tgoop.com/javaquiz/2257
Create:
Last Update:
Last Update:
❓ Парадокс Comparator’а
Если вам нужно написать Comparator для сортировки объектов по возрастанию, обычно он выглядит так:
public class ByScoreComparator implements Comparator {
@Override
public int compare(User u1, User u2) {
return (int) signum(u2.getAge() - u1.getAge());
}
}
➡️ Главная проблема — понять, от чего отнимать, чтобы порядок был правильным. Правильный ответ с первого раза получается редко, и часто мы замечаем ошибку уже после запуска кода.
Теперь это не нужно. Можно использовать ссылки на методы:
Comparator comparator = Comparator
.comparingDouble(User::getAge)
.thenComparing(User::getName);
List hList = ...;
hList.sort(comparator);
🗣️ Такой подход упрощает создание компараторов.
👩💻
@javaquiz
BY Java задачи с собеседований

Share with your friend now:
tgoop.com/javaquiz/2257