Чем Comparable и Comparator отличается от equals и когда что выбрать?
Что хотят услышать интервьюеры:
Сравнение: Comparable и Comparator стоит сравнивать с equals по критериям читаемости, безопасности, производительности, тестируемости и поддержки командой.
Ответ:
Когда выбирать Comparable и Comparator: когда его свойства прямо соответствуют задаче: Comparable задает natural ordering, Comparator — внешний порядок сортировки.
Слабый ответ: “так принято в Spring/Java”. На собеседовании лучше объяснить ограничения и цену выбора.
Comparator<User> byName = Comparator.comparing(User::name);